2015-11-30 89 views
17

我在使用包含AppBarLayout(持有ToolBar和TabLayout)和ViewPager(持有片段)作爲子項的協調器佈局時遇到問題。我想要在滾動時隱藏頂欄,並在滾動時顯示。但是,當我向下滾動時,狀態欄也會向上滾動,並將頂部欄留在狀態圖標的正下方,並與它們重疊。Android狀態欄向上滾動協調器佈局,留下狀態圖標與工具欄標題重疊

我試着向AppBarLayout和ViewPager添加android:fitsSystemWindows =「true」,但沒有任何改變。

下面的代碼中使用和快照顯示了兩種狀態:

<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)在AppBarLayout中''fitsSystemWindows =「true」''''''b)向'AppBarLayout'或'Toolbar'('app:contentScrim =「@ color/primaryDark」')添加一個'contentScrim',或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