Я пытаюсь создать Nav Drawer, как тот, что указан в спецификации Material (например, в новом приложении gmail). Обратите внимание, как содержимое навигационного ящика тянет за панель состояния:
Используя ответ Криса Банеса из этого вопроса, я смог успешно сделать ящик навигации в приложении для приложения за панель состояния; это нормально работает. То, что не работает, - это рисование содержимого навигационного ящика за панель состояния. Я хочу, чтобы синее изображение в моем ящике отображалось за строкой состояния, но эта область рисуется цветом строки состояния, как показано на этом снимке экрана.
Итак, как я могу сделать рисование ящика навигации в области за панель состояния? Я разместил соответствующие части моего проекта ниже.
Базовая компоновка, содержащая ящик навигации:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:fitsSystemWindows="true">
<!-- Framelayout to display Fragments -->
<FrameLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/warning_container" />
<FrameLayout
android:id="@+id/navigation_drawer_fragment_container"
android:layout_width="300dp"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:layout_gravity="start">
<fragment
android:id="@+id/navigation_drawer_fragment"
android:name="com.thebluealliance.androidclient.fragments.NavigationDrawerFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:layout="@layout/fragment_navigation_drawer" />
</FrameLayout>
</android.support.v4.widget.DrawerLayout>
Тема моей деятельности
<style name="AppThemeNoActionBar" parent="AppTheme">
<item name="windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
В onCreate()
моей активности я делаю следующее:
mDrawerLayout.setStatusBarBackground(R.color.primary_dark);