美文网首页
NavigationView 遮罩层阴影

NavigationView 遮罩层阴影

作者: Kevin丶CK | 来源:发表于2019-01-14 17:03 被阅读0次

最近在做一个侧滑菜单的项目,使用NavigationView(导航视图)与DrawerLayout(抽屉布局)结合使用,实现了良好的侧滑交互体验,但是适配沉浸状态栏时遇到两个问题。网上很多教材,但是要么就是比较复杂,要么就是特殊案例,无法解决问题,这里总结一下遇到的坑。

问题一:

设置沉浸状态栏后,DrawerLayout就不要设置fitsSystemWindows=true,否在就成下面的样子:


最好不要设置默认或者设置fitsSystemWindows=false,沉浸就正常了。如图:

fitsSystemWindows属性说明
fitsSystemWindows属性可以让view根据系统窗口来调整自己的布局;简单点说就是我们在设置应用布局时是否考虑系统窗口布局,这里系统窗口包括系统状态栏、导航栏、输入法等,包括一些手机系统带有的底部虚拟按键。
android:fitsSystemWindows=”true” (触发View的padding属性来给系统窗口留出空间)
这个属性可以给任何view设置,只要设置了这个属性此view的其他所有padding属性失效,同时该属性的生效条件是只有在设置了透明状态栏(StatusBar)或者导航栏(NavigationBar)此属性才会生效。
注意: fitsSystemWindows只作用在Android4.4及以上的系统,因为4.4以下的系统StatusBar没有透明状态。
具体可以参考这篇文章:https://blog.csdn.net/baidu_32472003/article/details/79925766

问题二:

设置沉浸式,在NavigationView 显示的时候顶部有遮罩层阴影,无法做到完美,如图:


看到各种写法,也尝试了很多,最后在https://bbs.csdn.net/topics/391920463有人在论坛里提问才知道的,
NavigationView设置一行属性即刻:

结束,看个效果:

非刘海屏也适配:

尝试了很多方法,这个是最简单的。insetForeground这个属性是ScrimInsetsFrameLayout自带的,表示插入区域的前景色。关于ScrimInsetsFrameLayout,自己还得去研究,就不做介绍啦。

相关文章

  • NavigationView 遮罩层阴影

    最近在做一个侧滑菜单的项目,使用NavigationView(导航视图)与DrawerLayout(抽屉布局)结合...

  • Pr19-Premiere特效滤镜:键控-轨道遮罩

    效果-键控-轨道遮罩键:上图形,下背景 文字层在上方:遮罩层 背景层在下方:被遮罩层 给被遮罩层添加“轨道遮罩键”...

  • Unity3D CustomSRP[译].6.阴影遮罩[Shad

    Shadow Masks(阴影遮罩) ——烘焙直接光遮罩 本节内容 烘焙静态阴影 合并实时光照和烘焙阴影 混合实时...

  • 放大镜效果

    核心原理1、鼠标经过遮罩层显示,离开隐藏;2、移动鼠标遮罩层跟随,鼠标超出大盒子后遮罩层不跟随出框;3、移动遮罩层...

  • 遮罩层实现

    代码如下 实现效果:点击按钮,显示遮罩层,弹出弹框点击遮罩层,隐藏遮罩层,隐藏弹框

  • 侧边弹窗

    遮罩层 html 遮罩层样式 侧边弹窗html 侧边弹窗css .list样式

  • jquery遮罩层不滚动 2019-04-22

    jquery遮罩层不滚动 上代码: jquery遮罩层不滚动 ...

  • 一、移动端相关问题

    1.移动端禁止遮罩层下面的页面滑动 答:打开遮罩层的时候,给遮罩层下面的页面添加position:fixed属性,...

  • CALayer的mask属性简介

    mask就是PS中的遮罩; 遮罩层必须至少有两个图层,上面的一个图层为“遮罩层”,下面的称“被遮罩层”;这两个图层...

  • 微信小程序实现遮罩及阻止遮罩层下的页面滚动

    实现遮罩效果 Html CSS 阻止遮罩层下的页面滚动 只需要在遮罩层上加上catchtouchmove='tur...

网友评论

      本文标题:NavigationView 遮罩层阴影

      本文链接:https://www.haomeiwen.com/subject/bzcjdqtx.html