导航抽屉上的暗色状态栏

时间:2014-10-31 14:38:16

标签: android android-layout android-5.0-lollipop material-design

我已根据How do I use DrawerLayout to display over the ActionBar/Toolbar and under the status bar?实施了一个带有材质设计的导航抽屉,但是因为我的抽屉是白色的,这会导致状态栏出现问题。 Google I / O 2014应用程序在导航抽屉上打印状态栏,它是如何实现这一目标的?我找不到它的源代码。

1 个答案:

答案 0 :(得分:2)

Google IO 2014应用使用ScrimInsetsFrameLayout为状态栏着色(导航抽屉将覆盖状态栏)。我强烈建议使用它我已经尝试了很多,它效果最好! ; - )

要让ScrimInsetsFrameLayout正常工作,您需要做四件事:

1。)将ScrimInsetsFrameLayout类添加到项目中。

2。)在活动的xml文件中使用ScrimInsetsFrameLayout作为抽屉列表的根元素。重要提示:将android:fitsSystemWindows设置为true 两者 DrawerLayoutScrimInsetsFrameLayout

3。)在活动主题(-v21)xml 中添加第<item name="android:statusBarColor">@android:color/transparent</item>行。 (否则,&#39;普通状态栏将覆盖ScrimInsetsFrameLayout的状态栏。)

4.。)在您的活动中,像往常一样初始化抽屉和DrawerLayout,然后拨打电话 drawerLayout.setStatusBarBackgroundColor(color)为状态栏添加颜色。

在Google IO App中,这是通过BaseActivity

setupNavDrawer()方法完成的