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();
}
相关推荐
zhaoyufei1336 小时前
Android13删除Taskbar
android
6***B488 小时前
存储过程(SQL)
android·数据库·sql
学困昇9 小时前
C++中的异常
android·java·c++
Jerry10 小时前
问题记录 - Android IdleHandler 没有执行
android
没有了遇见10 小时前
Android ButterKnife Android 35情况下 适配 Gradle 8.+
android
方白羽10 小时前
Android多层嵌套RecyclerView滚动
android·java·kotlin
菜就多学11 小时前
SurfaceControlViewHost 实现跨进程UI渲染
android·设计
2501_9151063212 小时前
iOS App 测试工具全景分析,构建从开发调试到线上监控的多阶段工具链体系
android·测试工具·ios·小程序·uni-app·iphone·webview
小羊在奋斗13 小时前
MySQL表的约束:从基础到核心(附场景+案例)
android·数据库·mysql
e***193513 小时前
MySQL-mysql zip安装包配置教程
android·mysql·adb