如何在活动中对齐标题或标签的中心?

时间:2011-03-18 02:18:45

标签: android android-activity label title

我知道有两种设置活动标题的方法。一种方法是在Android清单中设置它,如 android:label =“@ string / app_name”。其次是在活动类中以编程方式设置,如 setTitle(“Hello World!”)。两种方式都位于左侧,但如何将其放在中心?

4 个答案:

答案 0 :(得分:21)

它会正常工作..

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); 

答案 1 :(得分:5)

您需要定义自定义标题样式/主题。在示例中查看com.example.android.apis.app.CustomTitle。

答案 2 :(得分:5)

我找到了设置标题中心的另一种方法,只需将代码放在setContentView(R.layout.new)下......

((TextView)((FrameLayout)((LinearLayout)((ViewGroup) getWindow().getDecorView()).getChildAt(0)).getChildAt(0)).getChildAt(0)).setGravity(Gravity.CENTER);

希望这会有所帮助。谢谢!

答案 3 :(得分:3)

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"
   />

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android-apps/2.2_r1.1/com/example/android/apis/app/CustomTitle.java