Android 嵌入h5顶部状态栏空白

Android 嵌入h5顶部状态栏空白

在 onCreate() 中处理 WindowInsets

javascript 复制代码
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    EdgeToEdge.enable(this);
    setContentView(R.layout.activity_h5_web_view);

    // 关键:让 WebView 沉浸式绘制到状态栏下方
    ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.webview), (v, insets) -> {
        // 获取系统栏(状态栏、导航栏)的插入值
        WindowInsetsCompat.Type.systemBars(); // API 29+
        int left = insets.getInsets(WindowInsetsCompat.Type.systemBars()).left;
        int top = insets.getInsets(WindowInsetsCompat.Type.systemBars()).top;
        int right = insets.getInsets(WindowInsetsCompat.Type.systemBars()).right;
        int bottom = insets.getInsets(WindowInsetsCompat.Type.systemBars()).bottom;

        // 只保留 WebView 内容区域,不被系统 UI 影响
        v.setPadding(0, 0, 0, 0); // 移除所有 padding

        // 返回 CONSUMED 表示我们自己处理了 insets,不要继续传递
        return WindowInsetsCompat.CONSUMED;
    });

    initViews();
    setupWebView();
    loadPage();
}
相关推荐
SharpCJ5 小时前
Android 开发者为什么必须掌握 AI 能力?端侧视角下的技术变革
android·ai·aigc
_李小白6 小时前
【OSG学习笔记】Day 38: TextureVisitor(纹理访问器)
android·笔记·学习
JJay.6 小时前
Kotlin 高阶函数学习指南
android·开发语言·kotlin
jinanwuhuaguo6 小时前
截止到4月8日,OpenClaw 2026年4月更新深度解读剖析:从“能力回归”到“信任内建”的范式跃迁
android·开发语言·人工智能·深度学习·kotlin
JJay.7 小时前
Android Kotlin 协程使用指南
android·开发语言·kotlin
BLUcoding7 小时前
Android 布局介绍
android
summerkissyou19877 小时前
android-蓝牙-状态和协议值总结及监听例子
android·蓝牙
徒 花7 小时前
数据库知识复习05
android·数据库
提子拌饭13310 小时前
番茄时间管理:鸿蒙Flutter 实现的高效时间管理工具
android·flutter·华为·架构·开源·harmonyos·鸿蒙
4311媒体网10 小时前
帝国CMS二次开发实战:精准实现“最新资讯”标识与高亮判断
android