我已经按照如何使用DrawerLayout在ActionBar/Toolbar和状态栏下显示?实现了一个具有材质设计的导航抽屉,但是由于我的抽屉是白色的,这会导致状态栏出现问题。Google /O 2014应用程序在导航抽屉上着色状态栏,它是如何实现这一点的?我在它的源代码里找不到。
发布于 2015-02-10 09:45:49
Google 2014应用程序使用ScrimInsetsFrameLayout来修饰状态栏(导航抽屉将覆盖状态栏)。我强烈推荐使用它,我已经试过很多次了,而且效果最好!
要使ScrimInsetsFrameLayout正常工作,您需要做四件事:
1.)将ScrimInsetsFrameLayout
类添加到项目中。
2.)在活动的xml-文件中使用ScrimInsetsFrameLayout作为抽屉列表的根元素。重要事项:将android:fitsSystemWindows
设置为true
for DrawerLayout
和ScrimInsetsFrameLayout
3.)在活动主题(-v21) xml中添加行<item name="android:statusBarColor">@android:color/transparent</item>
。(否则,“普通”状态栏将覆盖ScrimInsetsFrameLayout的状态栏。)
4.)在您的活动中,像往常一样初始化抽屉和DrawerLayout
,然后调用drawerLayout.setStatusBarBackgroundColor(color)
来为状态栏着色。
在Google应用程序中,这是在setupNavDrawer()
的BaseActivity方法中完成的
https://stackoverflow.com/questions/26677230
复制