2015-11-30 1 views
17

У меня возникает проблема при использовании компоновки координатора, которая содержит AppBarLayout (удерживая ToolBar и TabLayout) и ViewPager (содержащие фрагменты) в качестве дочерних элементов. Я хочу, чтобы верхняя панель была скрыта при прокрутке вниз и открывалась при прокрутке назад. Однако, когда я прокручиваю вниз, строка состояния также прокручивается, оставляя верхнюю панель чуть ниже значков состояния, перекрываясь ими.Строка состояния Android, прокручивающаяся с раскладкой координатора, оставляя значки состояния перекрывающимися заголовками панели инструментов

Я попытался добавить android: fitsSystemWindows = "true" как для AppBarLayout, так и для ViewPager, но ничего не изменилось.

Ниже используемого кода и моментальных снимков, показывая два состояния:

<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|enterAlways" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/sliding_tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:tabMaxWidth="0dp" 
      app:tabGravity="fill" 
      app:tabMode="fixed"/> 

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

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

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

Status Bar without scroll applied

Status Bar with scroll applied

+1

У меня была точно такая же проблема, и я был в состоянии решить эту проблему, но у меня нет кода со мной! Несколько возможностей: a) 'fitsSystemWindows =" true "' на вашем 'AppBarLayout', b) Добавить' contentScrim' в 'AppBarLayout' или' Toolbar' ('app: contentScrim =" @ color/primaryDark "'), или c) попробуйте 'CollapsingToolbarLayout' вместо' AppBarLayout', но не давайте ему сбрасывать флаги прокрутки. Надеюсь, один из тех поможет! –

ответ

30

Обзор темы для деятельности, если тема как @ стиль/AppTheme.NoActionBar или одну тему без ActionBar, попробуйте поставить цвет, у вас должен быть стиль (v21) примерно такой:

<style name="AppTheme.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
    <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
    <item name="android:statusBarColor">@android:color/transparent</item>  
</style> 

изменить его:

<style name="AppTheme.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
    <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
    <item name="android:statusBarColor">@color/colorPrimaryDark</item> 
</style> 
+0

Удивительно, что это сработало, спасибо! – rauliyohmc

+1

Это нормально, если вы не хотите использовать ящик для навигации, например, чтобы показать с прозрачной панелью состояния ... – CaptRisky

+0

@CaptRisky, что делать, если я также хочу использовать навигационный ящик? – frozzyk

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