android popupWindow 在android 7.0上显示缺陷
来源:互联网 发布:医学大数据分析工资 编辑:程序博客网 时间:2024/05/17 04:19
android popupWindow 在android 7.0上显示缺陷
一:popupWindow 简析
1、含义
Popwindow就是Android上自定义的一个弹出窗口,是在当前activity的顶部的,可以在任意的位置显示,在显示的时候会阻塞UI线程。
2、构造
Popwindow可以直接通过构造方法获取
new PopupWindow(View contentView,intwidth,intheight,booleanfocusable)
构造方法有很多,但是要确保contentview ,width,hight的设置,否则Popwindow不会显示任何内容
这些参数也都可以单独进行设置,比如 popwindow.setContentView(contentView);
3、解析
popwindow的难点就在于这几个参数的设置,一般容易使人迷惑。
popupWindow1.setFocusable(true);//获取焦点
popupWindow1.setOutsideTouchable(true);//获取外部触摸事件
popupWindow1.setTouchable(true);//能够响应触摸事件
popupWindow1.setBackgroundDrawable(newColorDrawable(0x8f000000));//设置背景
二:popupWindow 7.0缺陷
由于popupWindow是一个比较成熟的弹出框的控件,广泛运用于android app项目设计中。
在使用showAsDropDown时候我们会发现 原本显示中部的popupWindow,变成了顶部或者底部,整个app呈现显示错乱的方式。不仅造成了显示错乱,在一些业务app中更是容易造成一些数据加载错乱和崩溃问题。 解决办法最简单是继承 popupWindow的子类中重写 showAsDropDown()方法,由于谷歌在7.1版本以及更新了这个缺陷补丁,所有只需要在sdk24时候做判断。
@Override public void showAsDropDown(View anchor) { if(Build.VERSION.SDK_INT == 24 && anchor!=null) { Rect rect = new Rect(); anchor.getGlobalVisibleRect(rect); int h=anchor.getResources().getDisplayMetrics(). heightPixels -rect.bottom; setHeight(h); } super.showAsDropDown(anchor); }
- android popupWindow 在android 7.0上显示缺陷
- 在Android 7.0上PopupWindow.showAsDropDown不起作用
- android 之popupWindow 在指定位置上的显示
- android 之popupWindow 在指定位置上的显示
- android 之popupWindow 在指定位置上的显示
- android 之popupWindow 在指定位置上的显示 .
- android 之popupWindow 在指定位置上的显示
- android 之popupWindow 在指定位置上的显示
- android 之popupWindow 在指定位置上的显示
- android 之popupWindow 在指定位置上的显示
- android 之popupWindow 在指定位置上的显示
- android 之popupWindow 在指定位置上的显示
- android 之popupWindow 在指定位置上的显示
- android开发之PopupWindow在指定位置上显示
- android 之popupWindow 在指定位置上的显示
- android 之popupWindow 在指定位置上的显示
- android 之popupWindow 在指定位置上的显示
- Android 之popupWindow 在指定位置上的显示
- 两个fragment切换时,自动滑动的冲突.
- vm虚拟机安装及Oracle安装
- Java虚拟机-JVM各种参数配置大全详细
- PyCharm设置模板添加默认信息
- Android集成网易云信(关于聊天与聊天界面)
- android popupWindow 在android 7.0上显示缺陷
- Android性能优化典范
- 时间控件二--timepicker
- 程序员是不是最后非得转管理才可以?
- android Api文档笔记(一)进程
- 【人生百味】那些透支健康而获得的成就真的值得吗?
- given two directory trees how to find which files are the same?
- c++调用ffmpeg sdk中出现的一些常见问题解决方法
- boot空间不足,删除ubuntu内核