2016-02-23 3 views
1

У меня есть странная проблема с панелью инструментов Android в Samsung Galaxy Tab 4. Возможно, это OS (4.4.2) или само устройство. Я использую библиотеку AppCompat-v7: 23 для отображения панели инструментов для устройств с предварительным Lollipop.Панель инструментов Android не отображается, когда в XML нет layout_below

Вот XML код моей деятельности, где отображается панель инструментов:

<LinearLayout 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" 
android:fitsSystemWindows="true"> 

<include 
    layout="@layout/appbar_content_top" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

А вот appbar_content_top:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true" 
tools:context=".CEMainActivity"> 

<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:layout_alignParentTop="true" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 

    </android.support.design.widget.AppBarLayout> 

    <FrameLayout 
     android:id="@+id/content" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
</FrameLayout> 

Как вы можете видеть, Я не использовал атрибут android: layout_below для @ + id/content. Это одно из моих требований. В моей деятельности я получаю панель инструментов и устанавливаю ее как мой supportActionToolbar.

toolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(toolbar); 
if (getSupportActionBar() != null) { 
    Log.e("Viewer", "Toolbar is not null"); 
} else { 
    Log.e("Viewer", "Toolbar is null"); 
} 

Панель инструментов отображается для других устройств. Но в Galaxy Tab 4 панель инструментов не отображается, хотя в приведенном выше фрагменте указано, что панель инструментов не равна нулю.

Жутко, если добавить андроид: layout_below атрибут @ + ид/контента, панель инструментов будет отображаться в Galaxy Tab 4.

Любые подсказки о том, почему это могло произойти ?? Благодаря!

+0

Там нет закрытия на appbar_content_top – NaviRamyle

+0

Существует, я просто не ставил весь код – mugiwara528

ответ

0

Поскольку вы используете appbarlayout, используйте компоновку координатора вместо Framelayout в качестве основной группы просмотра appbar_content_top.xml, координатор действует так же, как framelayout, просто подумайте об этом как о супер framelayout;) и еще одна вещь layout_below работает правильно с RelativeLayout только в качестве родительского ViewGroup

+0

Привет, я изначально пытался использовать CoordinatorLayout, но изменил его FrameLayout (в мой код выше). Он все еще не работал – mugiwara528

Смежные вопросы