Android 沉浸式状态栏与华为虚拟按键的冲突处理

Android 沉浸式状态栏与华为虚拟按键的冲突处理

最近在写自己的小东西的时候,遇到了一个Bug,就是沉浸式转态栏与华为虚拟按键的冲突的问题。
先看一下出现问题的图
这里写图片描述

然后根据网上的一些办法 最多的就是告诉你,在布局文件加这个2个属性

  android:fitsSystemWindows="true"
    android:clipToPadding="true"

这个是我的布局

<?xml version="1.0" encoding="utf-8"?>
<com.zhy.autolayout.AutoLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:fitsSystemWindows="true"
    android:clipToPadding="true"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <FrameLayout
        android:id="@+id/layFrame"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <com.ashokvarma.bottomnavigation.BottomNavigationBar
        android:id="@+id/bottom_navigation_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom" />
</com.zhy.autolayout.AutoLinearLayout>

然后大家看一下效果 =_=! 虚拟按键是是跑到最下面了,我那个沉浸式状态栏是怎么回事??还有那个虚拟按键居然是透明的,而且那么丑

这里写图片描述

然后网上又有人说,把XML里面的两个属性去掉,还有把那个沉浸式状态栏的属性也去掉

    android:fitsSystemWindows="true"
    android:clipToPadding="true"

这句也要注释掉
// activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); 去掉这句 防止沉浸式状态栏与虚拟按键冲突

  if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
            return this;
        } else {
            mToolbar.setPadding(0, SystemView.getStatusBarHeight(activity) >> 1, 0, 0);
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

          //  activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);  去掉这句 防止沉浸式状态栏与虚拟按键冲突


        } else {
            activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        }

看看效果

这里写图片描述

完美处理!

至于我的沉浸式状态栏会变色,是根据Tablayout来设置的

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2847.html原文链接:https://javaforall.net

(0)
上一篇 2021年3月12日 下午10:52
下一篇 2021年3月12日 下午10:52


相关推荐

  • 简述php 运行模式(SAPI)

    简述php 运行模式(SAPI)

    2022年2月11日
    44
  • 基于mpvue搭建一个小程序

    基于mpvue搭建一个小程序mpvue是一套定位于开发小程序的前端开发框架,熟悉vue基本语法即可开发,没有原生小程序开发的思维转换1.安装vue-cli$npminstall–globalvue-cli2.创建一个基于mpvue-quickstart模板的新项目vueinitmpvue/mpvue-quickstartmy-project开始选择题,一路回车也是没问题的3.进入项目文件…

    2022年5月7日
    61
  • Django(24)永久重定向和临时重定向「建议收藏」

    Django(24)永久重定向和临时重定向「建议收藏」重定向重定向分为永久重定向和临时重定向,在页面上体现的操作就是浏览器会从一个页面自动跳转到另外一个页面。比如用户访问了一个需要权限的页面,但是该用户当前并没有登录,因此我们应该给他重定向到登录页面。

    2022年7月30日
    9
  • Visual Studio 快捷键更改和设置

    Visual Studio 快捷键更改和设置VisualStudio 快捷键更改和设置 VisualStudio 是程序员最为经常利用的利器 一把利器没有快捷键的支持将会少了很多乐趣和便捷 Qt 的快捷键也是非常灵活多变 一般来说 VisualStudio 中的有些快捷键将会让你大开眼界 举个简单例子 大家都知道 Ctrl C 是复制功能 操作便是选中按键复制粘贴 但是你却忽略了 当光标在某一行代码上 你按 ctrl C 键 将会复制一行 无需

    2026年2月8日
    2
  • WSUS Troubleshooting guide「建议收藏」

    WSUS Troubleshooting guide「建议收藏」TroubleshootingguideforissueswhereWSUSclientsarenotreportingin来自于WSUSTEAMBLOGThisguideiswrittentoassistspecificallyintroubleshootingWSUSwhenclientsarenotrepor…

    2022年5月24日
    48
  • ie 谷歌插件Chrome Frame[通俗易懂]

    ie 谷歌插件Chrome Frame[通俗易懂]弄了很久的东西,记录一下。记得要放到服务上才有效果

    2022年7月16日
    18

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号