Android开发 - 解决DialogFragment在全屏时View被状态栏遮住的问题
我的上一篇文章:设置DialogFragment全屏显示 可以设置对话框的内容全屏显示,但是存在在某些机型上顶部的View被状态栏遮住的问题。经过测试,发现了一种解决办法,在DialogFragment的onCreateView()中添加一个布局监听器:
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ... //此处rootView是对话框的顶层View rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { int[] location = new int[2]; rootView.getLocationOnScreen(location); int y = location[1]; if (y == 0) { //此处的topMarginView是被状态栏覆盖的View ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams)topMarginView.getLayoutParams(); params.topMargin += BarUtils.getStatusBarHeight(); topMarginView.setLayoutParams(params); rootView.getViewTreeObserver().removeOnGlobalLayoutListener(this); } } }); }
这种方法是通过监听对话框内容布局顶层View在屏幕中的位置来解决的,如果顶层View在屏幕中的y位置为0,则表示其已经被状态栏所遮住,然后将被遮住的View向下移动状态栏的高度即可。
这种方式显然不够优雅,如果读者能有更好的方法,欢迎留言。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Magento移动端后台管理插件mobile Admin by snm portal
Magento mobile Admin 通过手机自动(的iPhone,iPad,Android手机或PC / Mac的),你的库存和产品价格。 定义属性,条形码编号和分配给您的产品。打开mobileAdmin和去库存。使用USB或蓝牙扫描条形码扫描和轻松改变你的股票。 安装扩展,并呼吁通过HTTP接口:// [你的店铺] / mobile_admin 演示(Magento的1.9):http://demo.snm-portal.de/snm(演示/ demo123) http://demo.snm-portal.de/mobile_admin
- 下一篇
【android studio】 gradle配置成本地离线zip包
原文: 【android studio】 gradle配置成本地离线zip包 关键词:distributionUrl修改成本地路径,android studio 提速 使用场景,1平常项目;2github上的项目,下载后先修改配置文件再open 一、gradle离线包下载地址: http://android-mirror.bugly.qq.com:8080/gradle/ 二、无需解压: 三、android studio修改成本地路径:(gradle/wrapper/gradle-wrapper.properties) distributionUrl=file:///C:/dev/android_studio/gradle_off-line/gradle-2.14.1-all.zip 另外,build.gradle里面 这里得纠正下,下载的gradle和 classpath这边是没有关系的,当前 (2016.12.5)的你可以设置2.2.2,这个版本是支持快速编译的,如果不需要 进行快速编译你可以设置低的如2.1.3、1.5.0(如果你受不了当前快速编译经常没有检测到代码更新的话)。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题