========  1

之前做了一个分享的功能,从底部弹出popwindow进行分享,但是由于部分手机自带虚拟键,如魅族X4,所以弹出的popwindow被虚拟键挡住,

在网上找了好多资料,一些资料说把虚拟键隐藏,却是可以实现,但是总觉得不符合要求。然后又看了一下qq的样式,它弹出的popwindow在虚拟键之上,

然后就在网上找各种popwindow的demo,最后仔细查看一下代码,才发现是我在设置popwindow的高度的时候将它的高度设置成了wrap_content,这里我觉得有必要给大家说一下fill_parent、wrap_content、match_parent的区别:
1)fill_parent
设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。这跟Windows控件的dockstyle属性大体一致。设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。
2) wrap_content
设置一个视图的尺寸为wrap_content将强制性地使视图扩展以显示全部内容。以TextView和ImageView控件为例,设置为wrap_content将完整显示其内部的文本和图像。布局元素将根据内容更改大小。设置一个视图的尺寸为wrap_content大体等同于设置Windows控件的Autosize属性为True。
3)match_parent
  Android2.2中match_parent和fill_parent是一个意思.两个参数意思一样,match_parent更贴切,于是从2.2开始两个词都可以用。那么如果考虑低版本的使用情况你就需要用fill_parent了
这里只需要将popwindow的高度设置成match_parent 就完美解决了问题,很高兴有木有。

==========  2  我在底部弹出一个popwindow 上面有几个按钮,在其他手机上没有问题,但在魅族手机上 ,取消按钮却被遮挡了  ,大家有遇到这个问题吗?

前几天刚好遇到过 现奉上解决办法:
        public static int getDpi(Activity activity) {
                Display display = activity.getWindowManager().getDefaultDisplay();
                DisplayMetrics dm = new DisplayMetrics();
                int height = 0;
                @SuppressWarnings("rawtypes")
                Class c;
                try {
                        c = Class.forName("android.view.Display");
                        @SuppressWarnings("unchecked")
                        Method method = c.getMethod("getRealMetrics", DisplayMetrics.class);
                        method.invoke(display, dm);
                        height = dm.heightPixels;
                } catch (Exception e) {
                        e.printStackTrace();
                }
                return height;
        }
        public static int[] getScreenWH(Context poCotext) {
                WindowManager wm = (WindowManager) poCotext
                                .getSystemService(Context.WINDOW_SERVICE);
                int width = wm.getDefaultDisplay().getWidth();
                int height = wm.getDefaultDisplay().getHeight();
                return new int[] { width, height };
        }
        public static int getVrtualBtnHeight(Context poCotext) {
                int location[] = getScreenWH(poCotext);
                int realHeiht = getDpi((Activity) poCotext);
                int virvalHeight = realHeiht - location[1];
                return virvalHeight;
        }
关键是最后一个方法:获取虚拟按键的高度,相信你的pop该弹多高 我就不多说了 都懂得

加个判断,4.0以上才有
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
                if (currentapiVersion >= 14) {
                        getWindow().getDecorView().setSystemUiVisibility(
                                        View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
                }

最新文章

  1. MySql免安装版安装配置,附MySQL服务无法启动解决方案
  2. jshint 一些选项(转载)
  3. HDU2433 BFS最短路
  4. 使用while代替for循环的几个习题
  5. GitLab安装手记
  6. Metasploit中使用Nessus插件命令
  7. 织梦DEDECMS文章、栏目页获取当前页面顶级栏目名称的方法
  8. 5个缺失的 JavaScript 数字格式化函数
  9. nginx配置 首页不显示 index.html首页是显示域名
  10. LeetCode Binary Tree Level Order Traversal II (二叉树颠倒层序)
  11. Oracle数据库插入图片和读取图片
  12. Java语言使用HttpClient模拟浏览器登录
  13. 想好了,我不学iOS和Android,有4个原因
  14. C++内存管理学习笔记(6)
  15. 阿里2015在线研发project师笔试题(部分)
  16. 疑问:关于postgres的to_number()
  17. 数娱科技:借助VR技术可让你了解自己的大脑
  18. 为什么 把单一元素的数组放在一个struct的尾端问题
  19. QT环境的搭建
  20. 【BZOJ2190】仪仗队(数论)

热门文章

  1. 控制文本和外观------Attr Binding(attr属性绑定)
  2. Unity3d纹理压缩格式表
  3. Linux系统编程@终端IO
  4. Dtrace for Linux 2016
  5. Debugging a Parallel Application
  6. 怎么给ABBYY FineReader Mac导入图像
  7. mysql log
  8. DBA日常SQL之查询数据库运行状况
  9. HDP2.4安装(三):MySql安装
  10. 在阿里云 centos 6.3上面安装php5.2(转)