操作栏以按钮为中心标题

时间:2013-05-13 13:32:39

标签: android android-actionbar actionbarsherlock

我想将标题置于操作栏中,同时在其旁边显示操作图标(并忽略它们以进行重力设置)。

我想要这个: enter image description here

相反,我有这个: enter image description here

这是我的代码:

    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个动作栏项目,只要我添加一个项目,定心就会搞砸了。 如果我可以使用它的可用性按钮(这也会使现在的中心位置变硬)也会很棒。

任何帮助都将不胜感激。

我不想实现自己的操作栏项/按钮逻辑。

3 个答案:

答案 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)

  1. 从RelativeLayout中删除启动器图标。
  2. 将RelativeLayout的宽度更改为wrap_content
  3. 卸下:

    actionBar.setDisplayShowCustomEnabled(真); actionBar.setDisplayShowHomeEnabled(假); actionBar.setDisplayShowTitleEnabled(假);

  4. 添加:

    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"