2016-08-09 2 views
0

Я использую линейную компоновку внутри относительной компоновки. Из-за этого панель действий не появляется. Он отлично работает как на Android 5, так и на 6. Эта проблема возникает только в Android 4. Не могли бы вы мне помочь?Android 4 Фрагмент Action Bar Не отображается

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.example.blabla"> 
<LinearLayout 
    android:paddingTop="60dp" 
    android:paddingLeft="@dimen/act_left" 
    android:paddingRight="10dp" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" 
    android:background="@color/background_gray_soft"> 
.... 
</LinearLayout> 
</RelativeLayout> 
+1

не используйте панель действий, используйте значок панели инструментов, а когда задайте вопрос, укажите более полезный код, чтобы мы могли вам помочь. –

+0

Я открыл проект Navigation Drawer. Не изменили никакого кода, кроме xml. Я только добавил линейную компоновку внутри относительного макета. Он работает на Android 5 и 6, как я сказал выше. Однако в Android 4 он не показывает панель действий, а также значок гамбургера. Итак, эта информация достаточно для вас? @ErfanMowlaei –

+0

Нет, это не так, я не могу помочь вам с этим фрагментом и объяснением на самом деле. вы можете позвонить мне все, что захотите, но для меня ваша информация неполна. –

ответ

0

Для тех, кто использует FrameLayouts с фрагментами в ICS, не меняют свой фон с

android:backgound="..." 

Это делает цвет Toolbar же с фоном. (Я понятия не имею, почему. Тем не менее, пытаясь не выясните.)

Вам необходимо проверить версию вашего API в коде Java и установить цвет фона там.

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { 
      FrameLayout frameLayout = (FrameLayout) findViewById(R.id.fragment_container); 
      frameLayout.setBackgroundColor(getResources().getColor(R.color.background_gray_soft)); 
     } 

Осталось только одна проблема, и этот метод не был решен.

Если вы хотите иметь специальный цвет фона в ICS (я столкнулся с этой проблемой только с фрагментами), как вы это установите?