2015-11-30 13 views
17

AppBarLayout(ToolBarとTabLayoutを保持)とViewPager(フラグメントを保持)を子として含むコーディネータレイアウトを使用すると問題が発生します。スクロールするときにトップバーを非表示にして、スクロールバックするときに表示します。しかし、私が下にスクロールすると、ステータスバーが上にスクロールアップし、ステータスバーのすぐ下にある上のバーが重なって表示されます。ステータスバーがコーディネータレイアウトでスクロールアップし、ツールバーのタイトルと重複して表示される

私はAppBarLayoutとViewPagerの両方にandroid:fitsSystemWindows = "true"を追加しようとしましたが、何も変更されませんでした。テーマは@スタイル/ AppTheme.NoActionBarのようなものである場合

<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

は、私はこれと同じ問題を抱えていた、と私はそれを解決することができましたが、私は私と一緒に、コードを持っていません!あなたの 'AppBarLayout'に' fitsSystemWindows = "true" '、' AppBarLayout'または 'Toolbar'(' app:contentScrim = "@ color/primaryDark" ')に' contentScrim'を追加して、またはc) 'AppBarLayout'の代わりに' CollapsingToolbarLayout'を試みますが、スクロールフラグを畳まないようにしてください。それらの1つが役立つことを願っています! –

答えて

30

、活動のテーマを確認:使用するコードと二つの状態が示すスナップショット以下

またはActionBarのない1つのテーマで、色を入れてみると、次のようなスタイル(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

関連する問題