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

相关推荐
用户2018792831677 小时前
匿名Binder的奥秘之“特工潜伏行动”
android
潘潘潘7 小时前
Android JNI中Java&Kotlin与C语言的相互调用
android
用户097 小时前
Kotlin 将会成为跨平台开发的终极选择么?
android·面试·kotlin
Carson带你学Android3 天前
Android PC时代已到来?Chrome OS将和Android合并!
android·google·chrome os
牛蛙点点申请出战3 天前
仿微信语音 WaveView -- Compose 实现
android·前端
没有了遇见4 天前
Android 基于JitPack Fork三方库代码 修改XPopup 资源ID异常BUG 并发布到仓库
android
sxczst4 天前
Launcher3 如何获取系统上的所有应用程序?
android
sxczst4 天前
如何在悬浮窗中使用 Compose?
android
XDMrWu4 天前
Compose 智能重组:编译器视角下的黑科技
android·kotlin