Я знаю, что есть два способа задания названия деятельности. Один из способов - установить его в андроиде как этот андроид: label = "@string/app_name" . Во-вторых, программная настройка в классе активности, например setTitle ( "Hello World!" ). Оба пути расположены в левой части, но как я могу поместить его в центр?
Как выровнять центр названия или метки в действии?
Ответ 1
Вам нужно будет определить собственный стиль/тему заголовка. Посмотрите образцы для com.example.android.apis.app.CustomTitle.
Ответ 2
Он будет работать нормально.
TextView customView = (TextView)
LayoutInflater.from(this).inflate(R.layout.actionbar_custom_title_view_centered,
null);
ActionBar.LayoutParams params = new ActionBar.LayoutParams(
ActionBar.LayoutParams.MATCH_PARENT,
ActionBar.LayoutParams.MATCH_PARENT, Gravity.CENTER );
customView.setText("Some centered text");
getSupportActionBar().setCustomView(customView, params);
Ответ 3
Я нашел другой способ установки центра заголовка, просто поместите код под setContentView (R.layout.new)...
((TextView)((FrameLayout)((LinearLayout)((ViewGroup) getWindow().getDecorView()).getChildAt(0)).getChildAt(0)).getChildAt(0)).setGravity(Gravity.CENTER);
Надеюсь, это поможет. Спасибо!
Ответ 4
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); // must come before setContentView
setContentView(R.layout.activity_calculator);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar);
Поместите свой макет в layout/title_bar.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myTitle"
android:text="Custom Centered Title"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="@android:color/black"
android:gravity="center"
/>