5

Я пытаюсь настроить пользовательское представление моего приложения, и макет, который я сделал, не заполняет всю панель действий. Я пробовал так много настроек стиля, но никто не работал для меня.getSupportActionBar(). SetCustomView (view) не заполняет всю панель действий

вот мой код в деятельности

View view = getLayoutInflater().inflate(R.layout.actionbar_customized_home, null); 
getSupportActionBar().setDisplayShowCustomEnabled(true); 
getSupportActionBar().setCustomView(view); 

вот макет сделанные установить в качестве зрения

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/actionbar_color" 
    > 
![enter image description here][1] 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="25dp" 
     android:layout_centerInParent="true" 
     android:scaleType="fitCenter" 
     android:src="@drawable/logo"/> 



</RelativeLayout> 

Даже фон из пунктов меню, как navdrawer, как я могу сделать мой customview как цвет фона?

Я очень ценю помощь

+0

Попробуйте изменить ширину и высоту RelativeLayout в match_parent вместо – Mus

+0

не работает Т_Т –

ответ

6

Установите основной контейнер на это:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="fill_horizontal" 
     android:background="@color/actionbar_color" 
     > 

     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="25dp" 
      android:layout_centerInParent="true" 
      android:scaleType="fitCenter" 
      android:src="@drawable/logo"/> 

    </RelativeLayout> 

Важной частью является android:layout_gravity="fill_horizontal, которая должна решить вашу проблему.

EDIT:

, если это не работает, попробуйте сделать это:

View view = getLayoutInflater().inflate(R.layout.actionbar_customized_home, null); 
LayoutParams layout = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); 
getSupportActionBar().setCustomView(view, layout); 
+0

сделал не работает T_T –

+0

Основной контейнер теперь выглядит следующим образом: –

+0

0

Пользовательские представления только занимают пространство между навигационной кнопки/вверх и меню переполнения. Для того, чтобы изменить цвет фона и другие цвета увидеть это - https://developer.android.com/training/basics/actionbar/styling.html

+0

привет!Спасибо, что поделились этим, теперь мне просто нужно установить фон элемента меню того же цвета, что и макет в моем пользовательском представлении. –

+0

Я прочитал этот пост и попробовал стили, но он не изменит фон элемента меню, как кнопка drawertoggle. Я использую appcompat v7 btw и ActionBarDrawerToggle, чтобы помочь мне с кнопкой –

16

Это все, что вам нужно добавить в ваш onCreate()

getSupportActionBar().setCustomView(new CustomView(this)); 
getSupportActionBar().setDisplayShowCustomEnabled(true); 
+0

Это сработало для меня! –

+0

getSupportActionBar(). SetDisplayShowCustomEnabled (true); что это для меня. Спасибо. –