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();
}
相关推荐
聚美智数5 小时前
智能结构化识别-图片结构解析-图像结构化解析-照片结构化解析
android·java·数据库
mmsx11 小时前
Android 插件化架构:40 个 Gradle 模块的拆分、通信与共存
android·kotlin
mmsx11 小时前
Android 不改一行源码:用 AspectJ 做三类拦截
android·kotlin
TST-魚爷11 小时前
易视讯会议摄像头 + 全向麦克风实操讲解稿
android·电脑·钉钉·腾讯会议·zoom会议
嘟哩DuliDuli11 小时前
AI创作工作区的项目上下文与多模态任务边界
android·人工智能·安全·ai·软件工程
imDwAaY13 小时前
MySQL 存储引擎是什么?
android·数据库·mysql
Meteors.14 小时前
Android Compose学习02:基础组件与 Modifier
android·学习
其实防守也摸鱼15 小时前
存储管理:页面置换算法学习任务(测验题要求给出置换页面顺序,缺页次数,缺页率)
android·前端·数据库·学习·oracle·自动化
mmsx16 小时前
Android 地图上绘制 KML:解析、样式与渲染
android·xml
运行时异常16 小时前
【无标题】
android