DrawerLayout 和 沉浸式布局

原创 2016年10月15日 13:49:27

DrawerLayout  这个和普通的ViewGroup设置沉浸式 不一样。

   普通的只要设置背景,给一个图片或者颜色,状态栏就会变成相应的背景色。(这是在工程已经设置好了在沉浸式下)。

   当你发现用DrawerLayout 作为父容器时,给DrawerLayout 设置背景,状态栏还是系统默认色,起初我修改了主题中的选项

 在 styles.xml 里面。

   对应的主题下添加

<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
 
colorPrimaryDark  为你定义在colors.xml的颜色。
 

  这样可以通过修改主题颜色达到效果,但是其他控件如果用到这个颜色,也会被修改掉,所以这个不是最佳的。

<!--  察看源码发现,DrawerLayout 的onDraw里面有画状态栏  -->

@Override
public void onDraw(Canvas c) {
    super.onDraw(c);
    if (mDrawStatusBarBackground && mStatusBarBackground != null) {
        final int inset = IMPL.getTopInset(mLastInsets);
        if (inset > 0) {
            mStatusBarBackground.setBounds(0, 0, getWidth(), inset);
            mStatusBarBackground.draw(c);
        }
    }
}

mStatusBarBackground ,可以通过设置
public void setStatusBarBackgroundColor(@ColorInt int color) {
    mStatusBarBackground = new ColorDrawable(color);
    invalidate();
}
或者
public void setStatusBarBackground(int resId) {
    mStatusBarBackground = resId != 0 ? ContextCompat.getDrawable(getContext(), resId) : null;
    invalidate();
}
也可以
public void setStatusBarBackground(Drawable bg) {
    mStatusBarBackground = bg;
    invalidate();
}



这样就不会影响到其他了。



DrawerLayout沉浸式状态栏

在开发过程中,往往在UI上需要用到沉浸式状态栏 但是有很多坑在里面 在DrawerLayout(侧滑抽屉)为根部局的时候,网上找到的沉浸式状态栏代码往往会失效要么是可以状态栏改颜色,而抽屉画出来的...
  • a791404623
  • a791404623
  • 2017-09-25 14:16:06
  • 1005

Android 系统状态栏沉浸式/透明化完整解决方案

转载:http://www.jianshu.com/p/34a8b40b9308 前言 网上已经有很多有关于系统状态栏的解决方案,这篇文章也不会有什么新奇的解决方案,都是本人经过自己试验,...
  • qq_15807167
  • qq_15807167
  • 2016-07-01 13:39:39
  • 7411

DrawerLayout侧滑菜单、Toolbar和沉浸式状态栏的使用

最近在开发中需要用到侧滑菜单,以前使用的SlidingMenu,但似乎已经被Google淘汰了(过时了),于是乎使用了DrawerLayout来实现,既然是在项目使用的,那么Toolbar和沉浸式状态...
  • u014727709
  • u014727709
  • 2017-01-16 15:32:03
  • 2745

DrawerLayout中侧边栏NavigationView沉浸式状态栏无效问题

工作总结 针对DrawerLayout中侧边栏NavigationView沉浸式状态栏无效问题,疏忽了一个问题,需要设置Activity的Style中 true 属性,同时在设置Navigation...
  • dazhaoDai
  • dazhaoDai
  • 2017-08-15 19:00:38
  • 673

Android中沉浸式透明状态栏和导航栏的终极解决方案

转载地址:https://github.com/Zackratos/UltimateBar UltimateBar 透明状态栏导航栏、沉浸式状态栏导航栏的终极解决方案 特点:...
  • zhaihaohao1
  • zhaihaohao1
  • 2017-08-03 14:48:29
  • 3125

Android----让你的状态栏变色-----沉浸式状态栏解决方案

原文出处:http://laobie.github.io/android/2016/02/15/status-bar-demo.html  伴随着 Android 5.0 发布的 Materia...
  • copy_yuan
  • copy_yuan
  • 2016-05-31 09:55:07
  • 9986

DrawerLayout 在 Android 4.4 和 Android 5.0 以上实现沉浸状态栏和导航栏的方法

DrawerLayout 在实现沉浸状态栏的方法相对复杂,尤其在 Android 4.4 和 Android 5.0 以上的实现方法区别很大,本人在通过一段时间的研究,总结出比较完美的实现方法,现在这...
  • Zackratos
  • Zackratos
  • 2017-03-15 21:03:38
  • 1466

Android DrawerLayout+ToolBar+NavigationView实现侧滑菜单效果,沉浸式状态栏

最近看到很多APP都使用了Android Support Library的DrawerLayout实现侧滑效果,下面我就自己写了一个Demo来实现,其中还用到了Toolbar,NavigationVi...
  • qq_27942511
  • qq_27942511
  • 2017-03-02 16:56:50
  • 349

DrawerLayout NavigationView结合使用实现漂亮的侧滑效果

之前也使用过一些开源控件来实现侧滑效果,但考虑到谷歌原生的强大,决定还是联系使用一下谷歌原生控件来实现侧滑效果。 首先DrawerLayout是v4包中的  NavigationView是design...
  • qq_34015057
  • qq_34015057
  • 2016-06-13 16:36:40
  • 730

xamarin android实现Toolbar+DrawerLayout完美侧滑导航栏

#### 前言 #### 如果你有关注Material Design,会发现国内的一些app也在使用material Design这种设计,我常用的网易有道词典就使用了Material Design...
  • kebi007
  • kebi007
  • 2017-09-05 23:34:44
  • 2230
收藏助手
不良信息举报
您举报文章:DrawerLayout 和 沉浸式布局
举报原因:
原因补充:

(最多只允许输入30个字)