我已根据How do I use DrawerLayout to display over the ActionBar/Toolbar and under the status bar?实施了一个带有材质设计的导航抽屉,但是因为我的抽屉是白色的,这会导致状态栏出现问题。 Google I / O 2014应用程序在导航抽屉上打印状态栏,它是如何实现这一目标的?我找不到它的源代码。
答案 0 :(得分:2)
Google IO 2014应用使用ScrimInsetsFrameLayout为状态栏着色(导航抽屉将覆盖状态栏)。我强烈建议使用它我已经尝试了很多,它效果最好! ; - )
要让ScrimInsetsFrameLayout正常工作,您需要做四件事:
1。)将ScrimInsetsFrameLayout
类添加到项目中。
2。)在活动的xml文件中使用ScrimInsetsFrameLayout作为抽屉列表的根元素。重要提示:将android:fitsSystemWindows
设置为true
两者 DrawerLayout
和ScrimInsetsFrameLayout
3。)在活动主题(-v21)xml 中添加第<item name="android:statusBarColor">@android:color/transparent</item>
行。 (否则,&#39;普通状态栏将覆盖ScrimInsetsFrameLayout的状态栏。)
4.。)在您的活动中,像往常一样初始化抽屉和DrawerLayout
,然后拨打电话
drawerLayout.setStatusBarBackgroundColor(color)
为状态栏添加颜色。
在Google IO App中,这是通过BaseActivity
的setupNavDrawer()
方法完成的