我想将标题置于操作栏中,同时在其旁边显示操作图标(并忽略它们以进行重力设置)。
我想要这个:
相反,我有这个:
这是我的代码:
ActionBar actionBar = getSupportActionBar();
ActionBar.LayoutParams params = new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT);
actionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.top_bar));
actionBar.setCustomView(LayoutInflater.from(this).inflate(R.layout.actionbar_layout, null), params);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
我的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="8dp"
android:src="@drawable/launcher_icon" />
<TextView
android:id="@+id/actionbar_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:maxHeight="1dp"
android:maxLines="1"
android:paddingLeft="48dp"
android:paddingRight="48dp"
android:text="Bacon ipsum"
android:textColor="#777777"
android:textSize="20sp" />
</RelativeLayout>
所以我的问题是,只有标题中心才有效,如果我旁边有0个动作栏项目,只要我添加一个项目,定心就会搞砸了。 如果我可以使用它的可用性按钮(这也会使现在的中心位置变硬)也会很棒。
任何帮助都将不胜感激。
我不想实现自己的操作栏项/按钮逻辑。
答案 0 :(得分:3)
您可以在TextView中尝试:
<TextView
android:id="@+id/actionbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:maxHeight="1dp"
android:maxLines="1"
android:paddingLeft="48dp"
android:paddingRight="48dp"
android:text="Bacon ipsum"
android:textColor="#777777"
android:textSize="20sp" />
答案 1 :(得分:2)
wrap_content
卸下:
actionBar.setDisplayShowCustomEnabled(真); actionBar.setDisplayShowHomeEnabled(假); actionBar.setDisplayShowTitleEnabled(假);
添加:
ActionBar.LayoutParams lp = new ActionBar.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT, Gravity.CENTER);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM)
actionBar.setCustomView(yourInflatedCustomView, lp);
答案 2 :(得分:0)
您是否曾尝试将此代码实施到文本中?
android:layout_centerHorizontal="true"