Android之属性fitsSystemWindows

移动端_小刚哥IP属地: 北京
0.288字数 406阅读 5,696

页面有输入框时都要考虑会不会被键盘挡住,于是fitsSystemWindows属性就派上了用场

属性说明

fitsSystemWindows属性可以让view根据系统窗口来调整自己的布局;简单点说就是我们在设置应用布局时是否考虑系统窗口布局,这里系统窗口包括系统状态栏、导航栏、输入法等,包括一些手机系统带有的底部虚拟按键。

android:fitsSystemWindows=”true” (触发View的padding属性来给系统窗口留出空间)
这个属性可以给任何view设置,只要设置了这个属性此view的其他所有padding属性失效,同时该属性的生效条件是只有在设置了透明状态栏(StatusBar)或者导航栏(NavigationBar)此属性才会生效。

注意⚠️: fitsSystemWindows只作用在Android4.4及以上的系统,因为4.4以下的系统StatusBar没有透明状态。

应用场景

在不同Android版本下,App状态栏和不同版本中系统本身的状态栏的适配;
兼容带有底部虚拟按键的手机系统。

摘抄自 https://www.cnblogs.com/xgjblog/p/9517645.html

遇到的坑

当一个页面里面不止一个输入框时,例如BaseActivity里面很多地方需要适应键盘弹出,那么只有最上面设置android:fitsSystemWindows=”true”的会生效,下面的就不生效了,为了解决这个问题需要在代码中动态控制一下

//位于上面的view
viewTop.setFitsSystemWindows(false);
//位于下面的组件
viewBottom.setFitsSystemWindows(true);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
4人点赞
更多精彩内容,就在简书APP
"小礼物走一走,来简书关注我"
还没有人赞赏,支持一下
总资产42共写了5.0W字获得466个赞共156个粉丝