В этом приложении, которое я создаю, я добавил в свою активность фрагмент Navigation Drawer. Я использую версию 5.0, поэтому мне удалось установить параметры primaryColor и primaryColorDark, чтобы получить правильные цвета. Я решил попробовать стиль моего Nav Drawer, чтобы он был очень похож на ящик Google Now в 5.0, где у Nav Drawer есть собственный фон для строки состояния. (Не могу размещать фотографии, недостаточно репутации >.>)
Я выполнил рекомендации этого вопроса здесь, что немного помогло. Я добился рисования своего Nav Drawer под строкой состояния, когда вытаскиваю его. Единственная проблема в том, что я не могу понять, как установить цвет строки состояния, которая отображается в моем ящике. В настоящее время он просто показывает белый цвет.
Вот соответствующие части моих стилей и кода:
Макет деятельности:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Main"
android:fitsSystemWindows="true">
<!-- main content -->
...
<!-- Drawer fragment -->
<fragment
android:id="@+id/navigation_drawer"
android:layout_width="@dimen/navigation_drawer_width"
android:layout_height="match_parent"
android:layout_gravity="left|start"
android:theme="@style/DrawerTheme"
android:fitsSystemWindows="true"
android:choiceMode="singleChoice"
android:name="com.myname.appname.NavigationDrawerFragment"
tools:layout="@layout/fragment_navigation_drawer" />
</android.support.v4.widget.DrawerLayout>
Макет фрагмента:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/navDrawerFragment"
android:theme="@style/DrawerTheme"
android:background="@color/WindowBackground"
tools:context=".NavigationDrawerFragment"
android:fitsSystemWindows="true">
<!-- content here -->
</RelativeLayout>
По ссылке выше, установка цвета моей строки состояния для действия (эта часть работает правильно):
public void onCreate(Bundled savedInstanceState) {
super.onCreate(savedInstanceState);
// ....
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
drawerLayout.setDrawerShadow(R.drawable.drawer_shadow, Gravity.START);
drawerLayout.setStatusBarBackgroundColor(getResources().getColor(R.color.colorPrimaryDark));
// ....
}
И, наконец, мои связанные стили для действия и то, что я «пытался» назначить фрагменту.
<style name="StatusBarActivityTheme" parent="MyAppTheme">
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
<style name="DrawerTheme" parent="MyAppTheme">
<item name="android:statusBarColor">#000000</item>
<item name="android:colorPrimaryDark">#000000</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
</style>
Заранее спасибо за любую помощь, которую вы можете отправить мне! Я подозреваю, что моя проблема связана с тем, что основной экран Google Now имеет прозрачную строку состояния и окрашивает ее только во время Nav Drawer, но любые новости об обратном были бы замечательными!