android 虚拟按键挡住布局,Android 关于导航栏(虚拟按键)遮挡PopupWindow底部布局的问题...
我们自定义popupWindow的时候,一般会设置这些参数
setContentView(contentView);
//设置高度为屏幕高度
setWidth(UIUtils.getScreenHeight(context));
//设置宽度为屏幕宽度
setHeight(UIUtils.getScreenWidth(context));
setFocusable(true);
//dismiss时将背景透明度恢复为1f
setOnDismissListener(()-> modifyActivityAlpha(1f));
setBackgroundDrawable(new BitmapDrawable());
setAnimationStyle(R.style.action_sheet_no_animation);
//将透明度alpha值设为0.5f
modifyActivityAlpha(0.5f);
//在底部展示
showAtLocation(context.getWindow().getDecorView(), Gravity.BOTTOM, 0, 0);
//改变背景透明度
private void modifyActivityAlpha(float alpha) {
WindowManager.LayoutParams params = context.getWindow().getAttributes();
params.alpha = alpha;
context.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
context.getWindow().setAttributes(params);
}
在魅族的手机(没有底部导航栏)上很开心很愉快的运行着,但是当我看到华为手机(有底部虚拟按钮)的显示结果时我是很头疼的,popupWindow有一部分布局被虚拟按钮遮挡了。
图一(可以看到底部滑不上去,一部分被遮挡了。)
one.png
在经过一番google后发现大家一致推荐的解决方案,在参数设置中加上
setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
满怀期待的等待着运行的结果,但是发现并没有解决问题,我开始思考哪里出问题了。
后来发现是宽高设置的问题,我把宽高的设置改为:
setWidth(WindowManager.LayoutParams.MATCH_PARENT);
setHeight(WindowManager.LayoutParams.MATCH_PARENT);
因为之前设置的是屏幕的宽高,是把虚拟按键的高度算在内的。
终于解决了有虚拟按键时全屏的popupWindow出现的遮挡问题。
图二(问题解决)
image.png
下面是最终的部分代码
public void init(View contentView, View layoutContent) {
setContentView(contentView);
setWidth(WindowManager.LayoutParams.MATCH_PARENT);
setHeight(WindowManager.LayoutParams.MATCH_PARENT);
setFocusable(true);
setOnDismissListener(()-> modifyActivityAlpha(1f));
setBackgroundDrawable(new BitmapDrawable());
setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
setAnimationStyle(R.style.action_sheet_no_animation);
modifyActivityAlpha(0.5f);
showAtLocation(context.getWindow().getDecorView(), Gravity.BOTTOM, 0, 0);
}
补充:在测试中仅仅使用了6.0的手机,有博主指出在7.0以上手机上会出现无效的问题,大家可以参考:http://blog.csdn.net/qinyunying/article/details/55051193。
如果解决了你的问题,希望能给个
android 虚拟按键挡住布局,Android 关于导航栏(虚拟按键)遮挡PopupWindow底部布局的问题...相关推荐
- 【23】华为Mate9导航栏遮挡PopupWindow底部布局
一.上图 二.问题描述 华为Mate9手机,UI的表现形式是底部黑色的导航栏遮挡住了PopupWindow底部重置与确认按钮的布局. 三.问题分析与解决思路 网上很多解决方法都是说设置popupWin ...
- java屏蔽虚拟按键代码_Android6.0 源码修改之屏蔽导航栏虚拟按键(Home和RecentAPP)/动态显示和隐藏NavigationBar...
场景分析, 为了完全实现沉浸式效果,在进入特定的app后可以将导航栏移除,当退出app后再次将导航栏恢复.(下面将采用发送广播的方式来移除和恢复导航栏) ps:不修改源码的情况下,简单的沉浸式效果实现 ...
- Android6.0 源码修改之屏蔽导航栏虚拟按键(Home和RecentAPP)/动态显示和隐藏NavigationBar...
场景分析, 为了完全实现沉浸式效果,在进入特定的app后可以将导航栏移除,当退出app后再次将导航栏恢复.(下面将采用发送广播的方式来移除和恢复导航栏) ps:不修改源码的情况下,简单的沉浸式效果实现 ...
- android 导航栏半透明,Android 沉浸式/透明式状态栏、导航栏
前言 Android 从4.4开始引进透明状态栏和导航栏的概念,并且在5.0进行了改进,将透明变成了半透明的效果.虽然此特性最早出现在ios,但不否认效果还是很赞的. 至于4.4以下的手机,就不要考虑 ...
- 9.后台管理系统主页面布局以及左侧导航栏设计
9.后台管理系统主页面布局以及左侧导航栏设计 1.首页布局 步骤: 在views目录下新建Main.vue文件,作为登录之后的布局 参考:element-ui 使用此模块的目的是,当中间内容部分有超出 ...
- Outlook如何将导航栏从左侧移动到底部
好久没更新公众号了 从今天开始恢复公众号的运营!!! 今天我们就来讲干货~ 下午有一位小姐姐询问我,为什么我的outlook的导航栏在左侧,能不能改成底部.和原来的样子一样~~ 我刚开始认为,找到视图 ...
- Android 导航栏虚拟按键
Android 虚拟按键 Android手机可分为有导航栏以及没导航栏两种,一般有物理按键的机器不会带有导航栏,而没有物理按键的机器则基本会带,比如华为的手机基本都是带导航栏的.当然现在全面屏手机大多 ...
- android 虚拟键背景,Android 设置应用的底部导航栏(虚拟按键)背景颜色
Android手机机型种类繁多,但是虚拟按键也就是底部的导航栏,不外乎两种设计方式,一种是作为虚拟按键设计到屏幕内部,一种是作为系统按键设计到屏幕外面. 对于按键在屏幕内部的机型,因为虚拟按键也是屏幕 ...
- Android 设置应用的底部导航栏(虚拟按键)背景颜色
对于有些Android手机的底部虚拟键,进行设置颜色,其实很简单,利用系统提供的Api一步代码就可以搞定,只支持Android5.0以上的系统 //设置底部导航栏颜色if (Build.VERSION ...
最新文章
- linux 查看 文档 不显示注释 命令
- 信息化建设规划_苏交集团施工企业信息化建设规划分享会顺利召开
- 数码管流动显示(自己的单片机)
- 如何在 ASP.Net Core 中使用 Consul 来存储配置
- flash倒计时_11款免费又好用的PPT倒计时神器
- linux使用rsync增量保存文件与无交互自动传输
- sqlserver 按日、周、月统计方法
- 顶配售价 18499 元,用上 M1 的 iPad Pro 性能与价格“直逼”电脑,这届苹果发布会有你喜欢的吗?
- Centos7搭建LAMP+Typecho博客
- [PHP 作为iOS后台Json格式HTTP通信及文件上传的实现]
- sql条件查询表数据条数
- 熊出没电锯机器人哪一集_熊出没伐木机器人第几集 熊出没光头强造伐木机器人是哪一集?...
- windows 系统遍历USB设备 VID和PID
- Quadratic equation
- Excel 中固定行标题和列标题
- VirtualBox 虚拟机里网络很慢的解决方法
- Mac环境配置SSH Key
- leveldb Arena 分析
- java 获取代码注释
- 美国大学计算机研究生放榜一亩三分地,美国研究生留学论坛(一亩三分地论坛研究生)...
热门文章
- DeepFusion:基于单视图深度和梯度预测的单目SLAM实时稠密三维重建
- CVPR2020 | PV-RCNN: 3D目标检测 Waymo挑战赛+KITTI榜 单模态第一算法
- 一个狠招|如何高效学习3D视觉
- maven项目首页显示的问题
- 双线性插值(Bilinear Interpolation)
- ChemDataExtractor:从PDF、HTM、文本等中提取化学数据
- R-Bioconductor安装
- PICRUSt2分析实战:16S扩增子OTU或ASV预测宏基因组、新增KEGG层级
- MPB:华南农大王文策组-​水禽肠道食糜微生物脂多糖含量的检测
- Nature:依靠锰的氧化实现细菌的化能自养生长