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();
}
相关推荐
用户69371750013842 分钟前
29.Kotlin 类型系统:智能转换:类型检查 (is) 与类型转换 (as)
android·后端·kotlin
用户69371750013843 分钟前
30. Kotlin 扩展:为“老类”添“新衣”:扩展函数与扩展属性
android·后端·kotlin
TimeFine7 分钟前
Android AI解放生产力(二):认识MCP以及配置config.toml
android
summerkissyou198732 分钟前
Android-packages/modules-由来及子目录介绍
android
走在路上的菜鸟35 分钟前
Android学Dart学习笔记第十六节 类-构造方法
android·笔记·学习·flutter
TimeFine38 分钟前
Android AI解放生产力(一):开始使用Codex Cli
android
_李小白2 小时前
【Android FrameWork】第三十三天:Camera视频流写入SurfaceView的机制
android
csj502 小时前
安卓基础之《(4)—Activity组件(2)》
android
_李小白4 小时前
【Android GLSurfaceView源码学习】第二天:GLSurfaceView深度分析
android·学习
元气满满-樱4 小时前
LNMP架构学习
android·学习·架构