Android target35适配之窗口边衬区变更

targetsdk升级到35后,发现页面的toolbar和navigationBar 会遮挡页面原有的元素,主要是因为Google将安全区域变更了,原来布局会自动避开statusBar,而如今根布局相对于statusBar的偏移没有了,这对于非全屏的页面来说,就需要统一进行适配了。同样的,底部navigationBar的偏移也没有了,那么页面底部的导航栏可能会遮挡页面的元素。

Activity的onCreate方法中,加入如下的代码

java 复制代码
final View decorView = getWindow().getDecorView();
ViewCompat.setOnApplyWindowInsetsListener(decorView, new OnApplyWindowInsetsListener() {
            @Override
            public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
                v.setPadding(insets.getSystemWindowInsetLeft(),
                        insets.getSystemWindowInsetTop(),
                        insets.getSystemWindowInsetRight(),
                        insets.getSystemWindowInsetBottom());
                return insets;
            }
        });

参考文档:

1 https://developer.android.google.cn/about/versions/15/behavior-changes-15?hl=zh-cn#window-insets

相关推荐
超人也会哭️呀34 分钟前
ES 混合检索(文本+向量)中的条件处理陷阱——当权限过滤遇到关键词查询
android·大数据·elasticsearch
zuowei28891 小时前
Laravel10.x重磅升级:8大新特性解析
android
imuliuliang1 小时前
Laravel4.x核心特性全解析
android
草莓熊Lotso3 小时前
【Linux系统加餐】从原理到封装:基于建造者模式实现System V信号量工业级C++封装
android·linux·运维·服务器·网络·c++·建造者模式
程序员煊子8 小时前
用 Cursor 从零搭一个 Compose 本地记账 App:实战记录与源码解析
android·kotlin·compose·cursor
alexhilton10 小时前
面向Android开发者的Google I/O 2026
android·kotlin·android jetpack
私人珍藏库11 小时前
【Android】豆图助手-永久HY-模拟微X~zfb各种截图
android·app·工具·软件·多功能
程序员陆业聪12 小时前
Shadow实战接入与生产落地:从零搭建到稳定运行
android
程序员陆业聪12 小时前
Shadow Transform:编译期的魔法——字节码替换实战
android
imuliuliang16 小时前
Laravel6.x核心特性全解析
android·php·laravel