我尝试了自己的“自定义操作”栏,以使操作栏标题居中。有效。但是,在操作栏中添加了选项菜单后,标题再次移至左侧。为了使标题居中显示在操作栏的中间,我该怎么办?
我的代码是:
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
View cView = getLayoutInflater().inflate(R.layout.custom_actionbar, null);
actionBar.setCustomView(cView);
而我的布局是
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@android:color/holo_blue_light"
android:orientation="vertical" >
<TextView
android:id="@+id/apptitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center_horizontal|center_vertical"
android:gravity="center_horizontal|center_vertical"
android:text="@string/app_name" />
最佳答案
可以肯定,您正在使用以下设置您的自定义主题。
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.abs_layout);
如果没有,请添加第一行。并且自定义布局中的文本居中。 (重力=中心)
我也找到了类似的链接here和here。希望这可以帮助。
也尝试一下。
通过不显示标题,我得以实现自己想要的
Activity ,而是按照您的建议使用customView。 key
我错过了一阵子是您必须使用setCustomView(View,
ActionVar.LayoutParams)方法以获取自定义 View
居中,只需在自定义 View 中设置layout_gravity =“center”
布局文件不起作用。这是一个简短的代码 fragment ,显示了我
得到它的工作:
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.2、2.3和2.2的设备上对我有效。
来源https://groups.google.com/forum/#!msg/actionbarsherlock/A9Ponma6KKI/Llsp41jWLEgJ