cordova android 沉浸式不能完全透明?

发布于 2022-09-06 02:47:53 字数 1088 浏览 12 评论 0

最近做了个基于Cordova的webapp,发现个很奇怪的问题,就是在android下状态栏覆盖webview并且透明的效果!小白纯web前端,不懂原生,网上看了一些资料找了一些代码,大致上实现了。但有个奇怪的问题!

//实现的代码
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT);
window.setNavigationBarColor(Color.TRANSPARENT);

window.getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

效果一:clipboard.png
好像不能完全透明,有一个黑白渐变的样式!

效果二:(同一台手机)
clipboard.png
(同一部手机)这才是完全透明效果!

反正就是很奇怪,有时候打开app能完全透明,有时候又会出现上面那种渐变 ........
并且在出现渐变的时候 只要锁屏下再打开手机 就能完全透明了 搞不懂 00.
上看手机是华为met 7 其他android 也测过,都有这个问题。望各位大神能指点迷津,万分感谢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

瘫痪情歌 2022-09-13 02:47:53

浸入式效果在有一些手机上面是会有黑白渐变,比如华为,而有些手机没有,比如魅族。

但是你这种在同一部手机上面呈现不同效果的情况暂不了解,或者你可以试试用静态的方法设置 Activitytheme 来达到浸入式效果:

<style name="AppTheme.Immersive" parent="AppTheme">
    <item name="windowNoTitle">true</item>
    <item name="android:windowTranslucentStatus">true</item>
</style>
几度春秋 2022-09-13 02:47:53

先提供方法 onCreate()中调用即可。

/**
 * 沉浸状态栏导航栏
 * @param isStatus 是否沉浸状态栏
 * @param isNavigation  是否沉浸导航栏
 */
private void initState(boolean isStatus, boolean isNavigation) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        if (isStatus) {
            //透明状态栏
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        }
        if (isNavigation) {

// 透明导航栏

            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        }
    }
}

-----------解释----------
以上方法就可以达到沉浸式状态栏效果,当你传入的是true时,并没有实现完全透明,不用紧张,那是一些手机产商在深度定制Android系统后,为了避免开发者的App顶部是纯黑或者纯白,而导致状态栏信息无法清晰显示做出的优化。

为什么有时候会从渐变透明变的纯透明呢?
猜测
你可以尝试把顶部变成纯黑色看状态栏的字体会不会变成白色,如果变成了白色,并且同样也出现了从渐变半透明变全透明的情况,那么应该是系统已经确认,状态栏的字体可以清晰显示,所以渐变半透明没有必要了所以才会消失的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文