Android 虚拟按键与沉浸式的适配方法

 更新时间:2018年07月28日 09:22:28   作者:lingfeixiang  
今天小编就为大家分享一篇Android 虚拟按键与沉浸式的适配方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

根据公司产品的要求,app要实现全屏模式,也就是4.4以后的所谓的沉浸式。

在values-v19和values-v21的styles里添加以下代码,实现19以上的系统的沉浸式:

<style name="AppBaseTheme" parent="android:Theme.Holo.Light.NoActionBar.TranslucentDecor">
 <item name="android:windowTranslucentStatus">true</item>
 <item name="android:windowTranslucentNavigation">true</item>
 <item name="android:windowContentOverlay">@null</item>
 <item name="android:statusBarColor">@android:color/transparent</item>
</style>

TranslucentDecor,是KitKat及以上版本加入的theme包,用于把布局顶到状态栏(Status Bar)和导航栏(Navigation Bar)上,扩展屏幕高度。这样,只要我们把Status Bar和Navigation Bar的颜色设置成透明,那就可以实现app的全屏而又不影响状态栏和导航栏了。如图:

那么,问题来了。加入直接这样设置,手机使用虚拟按键的,像华为各种型号的手机,布局和Navigation Bar会重叠导致冲突,比如这样:

而且,不适配4.4以下的系统。

为了解决问题,查看了很多资料,也自己尝试了一下,发现很多方法都不适合。后来尝试了一下,低于4.4的版本,也就是values下的styles,直接把parent的值,设置成NoTitleBar或者其它的兼容4.4以下版本的Theme(当然,4.4以下的系统,没办法实现沉浸式),然后values-v19和v21的保持TranslucentDecort实现沉浸式。

看了很多网友的资料,有人尝试在layout的总布局里设置android:fitsSystemWindows="true",但这样子Status Bar也就废了,这不是我们想要的。

把values-v19和v21的styles里的

<item name="android:windowTranslucentNavigation">false</item>

设置成false,尝试了一下,成功了。带有虚拟按键的系统,自动把布局顶上去了。

以上这篇Android 虚拟按键与沉浸式的适配方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Android XML数据解析要点介绍

    Android XML数据解析要点介绍

    这篇文章主要为大家介绍了Android XML数据解析要点介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Android Jetpack库剖析之LiveData组件篇

    Android Jetpack库剖析之LiveData组件篇

    LiveData是Jetpack组件的一部分,更多的时候是搭配ViewModel来使用,相对于Observable,LiveData的最大优势是其具有生命感知的,换句话说,LiveData可以保证只有在组件( Activity、Fragment、Service)处于活动生命周期状态的时候才会更新数据
    2022-07-07
  • 详解Flutter网络图片本地缓存的实现

    详解Flutter网络图片本地缓存的实现

    这篇文章主要为大家介绍了详解Flutter网络图片本地缓存的实现示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • AsyncTask的三个属性值和四个步骤

    AsyncTask的三个属性值和四个步骤

    本文主要介绍了AsyncTask的三个属性值和四个步骤,具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • android shape实现阴影或模糊边效果

    android shape实现阴影或模糊边效果

    这篇文章主要介绍了android shape实现阴影或模糊边效果,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Flutter 分页功能表格控件详细解析

    Flutter 分页功能表格控件详细解析

    这篇文章主要介绍了Flutter 分页功能表格控件详细解析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • AndroidStudio4.0日志中文乱码问题

    AndroidStudio4.0日志中文乱码问题

    这篇文章主要介绍了AndroidStudio4.0日志中文乱码问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Android自定义gridView仿头条频道拖动管理功能

    Android自定义gridView仿头条频道拖动管理功能

    这篇文章主要介绍了Android自定义gridView仿头条频道拖动管理功能,本文通过实例代码效果图展示给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • Android中扫描多媒体文件操作详解

    Android中扫描多媒体文件操作详解

    这篇文章主要介绍了Android中扫描多媒体文件操作详解,本文讲解了Android中的多媒体文件扫描机制、如何扫描一个刚创建的文件、如何扫描多个文件,需要的朋友可以参考下
    2015-01-01
  • Android提高之AudioRecord实现助听器的方法

    Android提高之AudioRecord实现助听器的方法

    这篇文章主要介绍了Android中AudioRecord实现助听器的方法,对进行Android项目开发有一定的借鉴价值,需要的朋友可以参考下
    2014-08-08

最新评论