ActionBar с пользовательским макетом не занимает всю ширину экрана на Android 4.4.2 (KitKat)
Я хочу отобразить панель действий с пользовательским макетом. Пользовательский макет имеет три ImageViews, один в центре и два других на левом и правом концах панели действий. Не должно быть кнопки «Назад» или элементов действий.
Вот что я использовал:
android.support.v7.app.ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
ActionBar.LayoutParams lp = new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT);
View actionBarView = LayoutInflater.from(this).inflate(resource, null);
actionBar.setCustomView(actionBarView, lp);
Пользовательский макет надувается правильно,но не занимает всю ширину экрана. Это происходит на Android 4.4.2 (KitKat). На Gingerbread вышеуказанное расположение работает правильно.
Я попробовал рекомендуемые решения в следующих обсуждениях:
ActionBar - пользовательский вид с центрированием ImageView, элементы действий по бокамRelativeLayout / customview не заполняет ширину вкладкиОднако проблема остается. Должен быть способ заставить макет занимать всю ширину экрана.
Я использую панель действий из библиотеки V7 AppCompat. Кто-нибудь знает способ обойти это ??
РЕДАКТИРОВАТЬ 1:
Вот файл макета XML:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="fill_horizontal"
android:orientation="horizontal">
<ImageView
android:id="@+id/left_icon"
android:background="@drawable/leftbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:clickable="true"
android:onClick="leftButtonPressed"
android:hapticFeedbackEnabled="true"
/>
<ImageView
android:id="@+id/center_icon"
android:background="@drawable/centertitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:adjustViewBounds="true"
android:scaleType="centerInside"
/>
<ImageView
android:id="@+id/right_icon"
android:background="@drawable/rightbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:clickable="true"
android:onClick="rightButtonPressed"
android:hapticFeedbackEnabled="true"
/>
</RelativeLayout>
Вот как это выглядит на Gingerbread (2.3.5):
Gingerbread Action Bar http://i62.tinypic.com/4utfu0.png
Как видите, его надувать правильно. А вот как это выглядит на Kitkat (4.4.2):
Панель действий Kitkat http://i59.tinypic.com/vosfex.png
Вы можете видеть, что справа есть небольшой зазор, и макет не занимает всю ширину.
Я не верю, что есть проблема с макетом (он правильно раздувается на Android 2.3.5), но я могу ошибаться. Скажи мне, если я сумасшедший.
РЕДАКТИРОВАТЬ 2:
БлагодаряДокторор Драйв а такжеэта почтаЯ смог получить желаемый результат. Я знаю, что это немного странно: зачем использовать панель действий, если у вас не будет навигации или элементов действий, но это то, что мне нужно для решения моей конкретной проблемы. У меня есть TabHost со стеком скользящих фрагментов на каждой вкладке, и верхний LinearLayout (то есть панель действий) должен изменить свой внешний вид при отображении разных фрагментов.
РЕДАКТИРОВАТЬ 3:
Вот еще несколько ссылок для понимания этого далее:
https://groups.google.com/forum/#!msg/actionbarsherlock/i8JRUkBJjqk/ZzQV9xaM-lkJhttps://groups.google.com/forum/#!topic/android-developers/FGEi72thLzE