【问题标题】:Dark tinted status bar over navigation drawer导航抽屉上的深色状态栏
【发布时间】:2014-12-27 22:11:21
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    2.) 在 Activity 的 xml 文件中使用 ScrimInsetsFrameLayout 作为 抽屉列表 的根元素。重要提示:将android:fitsSystemWindows 设置为true DrawerLayout 和ScrimInsetsFrameLayout

    3.) 在您的 活动主题 (-v21) xml 中添加行 <item name="android:statusBarColor">@android:color/transparent</item>。 (否则,“正常”状态栏将覆盖 ScrimInsetsFrameLayout 的状态栏。)

    4.) 在您的活动中,像往常一样初始化抽屉和DrawerLayout,然后调用 drawerLayout.setStatusBarBackgroundColor(color) 为状态栏着色。

    在 Google IO 应用程序中,这是在 BaseActivity 的 setupNavDrawer() 方法中完成的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多