动作栏中的Android中心自定义视图

时间:2013-12-27 01:38:52

标签: android android-custom-view android-actionbar-compat

尝试为我的操作栏设置自定义视图,但问题是它没有填满操作栏的整个宽度,这使得我可以使对象居中。如何在我的操作栏中设置自定义视图以填满整个操作栏?

设置操作栏的代码:

actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
actionBar.setCustomView(inflater.inflate(R.layout.actionbar_layout, null));

我的actionbar_layout.xml:

<?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="wrap_content"
    android:layout_gravity="center"
    android:background="#EDEDED">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/title"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:textColor="#FFFFFF"
    android:text="Testing"/>
</RelativeLayout>

2 个答案:

答案 0 :(得分:2)

你必须在actionbar_layout.xml中为RelativeLayout设置android:layout_width =“wrap_content”;这与android:layout_gravity =“center”结合使用,可以将自定义视图集中在ActionBar中。

答案 1 :(得分:2)

就我而言,问题是上部布局总是拉伸到内部视图的高度和重量。只需设置layout_height =“match_parent”即可使其工作 在TextView中:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:text="@string/actionbar_title"
        />
</LinearLayout>