В этом приложении, которое я создаю, я добавил фрагмент навигационного ящика в свою деятельность. Я использую 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, но любые новости об обратном были бы замечательными!