Пользовательский вид Android Center на панели действий

Пытаюсь установить собственный вид для моей панели действий, но проблема в том, что она не заполняет всю ширину панели действий, что затрудняет центрирование объектов. Как я могу установить пользовательское представление на панели действий, которое заполняет всю панель действий?

Код для настройки моей панели действий:

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>

person AlexanderNajafi    schedule 27.12.2013    source источник
comment
stackoverflow.com/a/16029214/1168654   -  person Dhaval Parmar    schedule 27.12.2013


Ответы (2)


Вы должны установить android:layout_width="wrap_content" для вашего RelativeLayout в вашем actionbar_layout.xml; это, в сочетании с android:layout_gravity="center", позволяет центрировать ваше пользовательское представление в ActionBar.

person moondroid    schedule 18.02.2014

Насколько я понимаю, дело в том, что верхний макет всегда растягивается до высоты и веса внутреннего вида. Вы можете заставить его работать, просто установив 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>
person juanmeanwhile    schedule 10.03.2014