Anu*_*Anu 10 android center android-actionbar
我尝试了自己的自定义操作栏,让操作栏标题位于中间位置.有效.但是,在我添加操作栏中的选项菜单后,标题再次向左移动.我应该怎么做才能让标题集中在动作栏的中间?我的代码是:
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);
Run Code Online (Sandbox Code Playgroud)
我的布局是
<?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" />
Run Code Online (Sandbox Code Playgroud)
Atu*_*lic 16
我相信,您使用以下设置自定义主题.
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.abs_layout);
Run Code Online (Sandbox Code Playgroud)
如果没有,那么请添加第一行.自定义布局中的文本居中.(重力=中心)
试试这个.
我没有显示活动的标题,而是按照您的建议使用customView,从而完成了我想要的任务.我错过了一段时间的关键是你必须使用setCustomView(View,ActionVar.LayoutParams)方法才能使自定义视图居中,只需在自定义视图布局文件中设置layout_gravity ="center"就行不通了.这是一个简短的代码片段,展示了我如何使用它:
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);
Run Code Online (Sandbox Code Playgroud)
这种方法适用于至少3.2,2.3和2.2设备.
来源https://groups.google.com/forum/#!msg/actionbarsherlock/A9Ponma6KKI/Llsp41jWLEgJ
| 归档时间: |
|
| 查看次数: |
28445 次 |
| 最近记录: |