Android之属性fitsSystemWindows

作者: 移动端_小刚哥 | 来源:发表于2020-06-01 14:21 被阅读0次

    页面有输入框时都要考虑会不会被键盘挡住,于是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);
    

    相关文章

      网友评论

        本文标题:Android之属性fitsSystemWindows

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