android 虚拟导航监听,Android另类判断NavigationBar虚拟导航栏状态_韩莹莹的博客-程序员秘密

技术标签: android 虚拟导航监听  

好久没码字了,所以出来冒个泡

一直用着华为的手机,从一开始就觉得华为的虚拟导航栏用着还是挺顺手的,后来发现越来越多的机子都开始使用起来,查看源码发现,虚拟导航栏是属于SystemUI的一部分。

再一看手机,还提供了隐藏虚拟按键的按钮,于是就想,能不能有一个方法判断导航栏是否显示?基于不重复造轮子的思想,先是网上搜索了一把,方法都大同小异,但一用,发现挺多新手机都无法适配,于是从另一种方向思考如何判断NavigationBar虚拟导航栏是否显示?

思考:从DecorView这个神View入手,因为考虑到我们码的代码基本都在DecorView中一个id为android.R.id.content的容器中,那好,就根据content的容器宽高判断虚拟导航栏是否显示,于是就有了下面的代码。

package com.lkuan.gek.util;

import android.content.Context;

import android.content.res.Configuration;

import android.graphics.Point;

import android.graphics.Rect;

import android.support.annotation.NonNull;

import android.view.Display;

import android.view.View;

import android.view.Window;

/**

* @author lkuan

* Create on 2018/5/25

*

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_32827751/article/details/117783350

智能推荐

[WIN32汇编]之ml 、link和nmake用法_ml汇编 make link_只爱阿蒙的博客-程序员秘密

<br />ml可以使用以下选项:<br /><br /><br /> <br />link可以使用以下选项:<br /><br /><br /> <br /> <br />nmake可以使用以下选项:<br /><br /> 

JSTL中c:set标签的用法__醉生_梦死的博客-程序员秘密

标签有两种不同的属性设置:var和target。var“版本”用于设置作用域属性,target“版本”用于设置bean属性或Map值。这两个版本都有两种形式:有标签体和没有标签体。有标签体的只是放入值的另一种途径。★ var“版本”1.  2. 3.  4. 5.  6. Sheriff, Bartender, Cowgirl 7.  

TX2--TX2介绍_worthsen的博客-程序员秘密

一、性能参数介绍1、具体参数如下二、实物 三、架构1、CPU、GPU、软件架构详见 TX2学习笔记--Tegra架构介绍。 致谢1、 Hardware For Every Situation(官方)2、 TX2学习笔记--Tegra架构介绍...

【C语言基础】1-5 C语言循环与二维数组_Tag_sk的博客-程序员秘密

C语言循环与二维数组知识点break与continuebreak:break语句在switch-case语句中是跳出。break语句在循环中还有另一种用法。当循环中遇到break语句时,立即结束循环,跳到循环体外,执行循环结构后面的语句 continue:对于continue来说,作用是跳过本次循环; continue与break多与if连用二维数组声明方式类型说明符 数组名 [常量表达式1][

前端属性伪丢失+后端处理注意事项_王志鹏的博客的博客-程序员秘密

今天遇到内容:1、前端设置属性undenfined后通过JSON.stringify(data);查看,值为undenfined的属性却丢失了,实际此处是JSON.stringify(data);方法的问题,它会将值为undenfined的属性隐藏掉,并不是属性丢失,所以严格说它会导致值为undenfined属性伪丢失,如果为了查看方便,可以将值设置为null,但是不建议设置为空串" ",这样...

字号与像素对照表_shuaijie的博客-程序员秘密

字号“数值”越大,字就越小。  中文字号英文字号(磅)毫米像素1英寸72pt25.30mm95.6px 大特号63pt22.14mm83.7px特号54pt18.97mm71.7px ...

随便推点

基于Python的视频采集设备的图像处理与机器视觉_results =model(imgs,size=640)_biyezuopinvip的博客-程序员秘密

一.问题描述工厂中经常需要安全生产,故需要检测目前区域内是否有动态物体进入。但是往往因为视频设备算力或者算法性能问题,无法准确判断动态物体是人还是其他物体。故设计了一套系统,用于实时动态检测并且判定区域内是否出现人。二.程序以及算法2.1程序主体流程检测设备进行高斯混合模型的动态检测将检测到的图片传输给云端算法由云端算法yolov5判断图片中是否有人,并且返回人的坐标检测设备根据云端算法返回的结果绘制图片并且按照时间保存。2.2高斯混合模型2.2.1算法原理讲解

Netty 系列之编解码器和 handler 的调用机制_c#protobuf tcp_油腻的程序猿啊的博客-程序员秘密

编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码codec(编解码器) 的组成部分有两个:decoder(解码器)和 encoder(编码器)。encoder 负责把业务数据转换成字节码数据,decoder 负责把字节码数据转换成业务数据Protobuf 是 Google 发布的开源项目,全称 Google Protocol Buffers,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。

51单片机c语言的秒表设计,51单片机c语言的秒表设计解析.doc_弗拉衣裤的博客-程序员秘密

课程设计报告基于AT89C51单片机的秒表设计院 系 电子信息工程学院专 业 电子信息工程1姓 名摘 要本设计是设计一个单片机控制的多功能秒表系统。近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动着传统控制检测日新月异的更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,...

IdHttp 出现 Http/1.0 302 found 问题解决_zjm12343的博客-程序员秘密

使用IdHttp组件下载文件,出现 Http/1.0 302 found 错误添加 IdHTTP.HandleRedirects := True; 解决

ip范围查询_查询ip区间的函数_水木清华1986的博客-程序员秘密

由于前期设计问题,在保存ip地址时,没有存为整型,而是存成了字符串形式,在查询ip的范围区间时,遇到这样的问题:select * from ip where ip between '192.168.11.1' and '192.168.11.150' ,当末尾ip地址最后一位为三位数时,此时就查询不出数据了。查了一下mysql自带有一个对ip地址做处理的函数inet_aton,作用主要是给

Vim自动补全插件----YouCompleteMe安装与配置_smartdog_1的博客-程序员秘密

地址:http://www.cnblogs.com/zhongcq/p/3630047.html工具介绍:http://www.csdn.net/article/2014-03-28/2819031-great-tools-for-startups

推荐文章

热门文章

相关标签