2015-11-29 4 views
11

У меня проблема с моей строкой состояния, которая перекрывается панелью инструментов.Панель состояния перекрытия панели инструментов

Я хотел бы иметь функцию, когда пользователь прокручивает ListView вниз, панель инструментов исчезает за панель состояния, так что видны только вкладки, как в приложениях WhatsApp и YouTube.

Для достижения этого эффекта или получить эту функцию, я использовал эту строку:

app:layout_scrollFlags="scroll|enterAlways" 

в мою android.support.v7.widget.Toolbar, но знаю, как я уже говорил, в строке состояния получает перекрывается на панели инструментов.

enter image description here

enter image description here

enter image description here

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    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:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context=".MainActivity"> 

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

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

     </android.support.v7.widget.Toolbar> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

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

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


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

Благодарен за любую помощь!

UPDATE:

v21 \ styles.xml

<resources>> 
    <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> 
</resources> 

styles.xml

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 
    <style name="AppTheme.NoActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
    </style> 
    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 
    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> 

</resources> 

enter image description here

+0

Пожалуйста, пост стиль эта деятельность использует от вашего styles.xml – asadmshah

+0

@asadmshah Я обновил свой пост – Ron

ответ

15

Попробуйте добавить android:fitsSystemWindows="true" к android.support.design.widget.AppBarLayout или @style/AppTheme.PopupOverlay стиль

+1

Теперь я получил эффект, что я хотел, но мое уведомление bar turn white @mdtuyen – Ron

+1

вы можете использовать 'setStatusBarColor (int color)' в коде или изменить стиль, чтобы исправить его – phongvan

+2

Я уже нашел другой способ @ color/colorPrimaryDark - это то, что okey или будут ли у меня проблемы с этим? @mdtuyen – Ron

0

попробовать сделать android:layout_height="?attr/actionBarSize" для android.support.v7.widget.Toolbar

2

Это работает для меня, чтобы получить белую накладку на строке состояния устройства (проблемы после обновления в вопросе)

Я изменилась:

<item name="android:windowDrawsSystemBarBackgrounds">true</item> 

к

<item name="android:windowDrawsSystemBarBackgrounds">false</item> 

в моем файле styles.xml

+2

В моем случае он изменил нормальный цвет строки состояния на черный. – CoolMind

+0

@CoolMind см. Это [ссылка] (http://matthewwear.xyz/no-excuses-it-takes-5-mins-make-that-drawer-visible-under-your-status-bar-2/) it описывает, как он работает подробно –

+0

официальных документов по этой же теме: https://developer.android.com/reference/android/R.attr.html#windowDrawsSystemBarBackgrounds –

3

в v21\styles.xml

удалить <item name="android:statusBarColor">@android:color/transparent</item>