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

相关推荐
silvamux_31 分钟前
4款新模型商务邮件翻译横评:0.98到0.46
android·java·javascript
ynchyong1 小时前
创建MySQL只读账号
android·数据库·mysql
朱涛的自习室11 小时前
我给 Gemini 4 和 DeepSeek 搞了套「末位淘汰」,AI 干活会更猛吗?(Day 3)
android·前端·后端
应用市场17 小时前
离线小游戏做“每日挑战”:日期当随机种子,整局存成 JSON,再加一个“我不是机器人”
android·kotlin·游戏开发
一铭1119917 小时前
海豹办公 1.9.15 跨端办公软件实践 文档兼容 Access 数据库与移动 WebView 排错
android·数据库·electron·开源软件·access
geats人山人海18 小时前
java 7异常
android·java·开发语言
2601_9620710019 小时前
Kimi K3 vs DeepSeek V4-Pro实测对比:2026年同一入口十道题,耗时与token消耗差在哪
android·java·数据库
右手吉他20 小时前
高通平台IA APN问题分析之二
android·物联网
夜雪一千21 小时前
MySQL 自增 ID 的底层原理与坑点
android·mysql·adb
不浪费一个字节21 小时前
一个纯 Python 实现的 APK 解析与设备操控工具箱
android