========  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);
                }

bug_ _Popwindow被魅族手机自带虚拟键挡住完美解决的更多相关文章

  1. 10.14_魅族手机音乐播放无故暂停,MetroUICss-tile中的字如何居中

    (1)魅族手机,播放音乐,无故暂停.不管是自带的音乐播放程序,还是下载的其他音乐播放器都是如此.而且,手机上有个Google服务耗电量非常高,会经常弹出登陆Google账号的弹出项. (2)Metro ...

  2. 手机自带的显示基站命令(android手机定位,iphone基站定位)

    手机自带的显示基站命令(安卓手机定位,苹果手机基站定位) 分类: 通信和网络2012-02-07 17:48 1734人阅读 评论(0) 收藏 举报 手机htciphone中兴三星网络 安卓手机自带快 ...

  3. 网络编程之PC版与Android手机版带断点续传的多线程下载

    一.多线程下载         多线程下载就是抢占服务器资源         原理:服务器CPU 分配给每条线程的时间片相同,服务器带宽平均分配给每条线程,所以客户端开启的线程越多,就能抢占到更多的服 ...

  4. 解决魅族手机连接win7连不上

    折腾了好半天,win7就是连接不了魅族手机....我搞andorid开发的 连接不上 调个毛程序啊. 最后解决了 新建此文件即可.文件内容更为  0x2a45关闭即可. 来自为知笔记(Wiz)

  5. Android手机自带内部存储路径的获取 (转)

    转自:http://my.oschina.net/liucundong/blog/288183 我有一台中兴的Android手机,型号是 ZTE U930HD,手机没有插入外置SD卡(也就是Micro ...

  6. 魅族手机Listview下拉出现hold字样的奇葩问题解决方案

    前几天测试在魅族手机上测试,下拉listview,出现奇葩的hold字样,╭∩╮(︶︿︶)╭∩╮,这锅老子不背,但是问题还得解决吧,如下是对于魅族不同版本的出现这种情况的处理: 2.3之前: andr ...

  7. noVNC支持手机自带键盘输入

    代码修改说明 novnc的web链接类似为:http://192.168.1.177:6080/vnc_auto.html?token=105356fa-bbe3-43e4-a0ce-7703dc42 ...

  8. 魅族手机USB调试无法打开、log无法打印

    MEIZU 在打开usb调试允许时,总提示:because an app is oobscuring a premision request, Setting can't verify your re ...

  9. 华为手机自带浏览器不支持 ES6 语法

    原文地址:https://caochangkui.github.io/huawei-es6/ 华为手机自带浏览器对 es6 语法的支持度极差,哪怕最新的荣耀10 手机也有该毛病!所以,移动端项目开发中 ...

随机推荐

  1. Make和Makefile编写(详见GCC手册)

    Makefile和Make Rules 多模块软件.依赖树和Make 默认规则 Make使用程序对简单变量的支持 内建变量 虚目标 特殊目标 一般性语法错误及其纠正措施 命令行的使用和调试 Makef ...

  2. MySQL 用户与授权管理详解

    大纲 一.前言 二.创建用户并授权 三.GRANT语句的种类 四.撤权并删除用户 一.前言 做为Mysql数据库管理员管理用户账户,是一件很重要的事,指出哪个用户可以连接服务器,从哪里连接,连接后能做 ...

  3. oracle闪回使用以及删除存储过程恢复

    oracle恢复删除的数据  恢复删除的存储过程 SELECT * FROM dba_source as of timestamp (systimestamp -interval'600'second ...

  4. Sklearn库例子4:分类——Lasso分类例子

    Lasso回归: #-*- encoding:utf-8 -*- import numpy as np import matplotlib.pyplot as plt from sklearn.met ...

  5. 在svg里面画虚线

    使用stroke-dasharray="3 2"  属性,其中3和2分别表示画的长度和间隙的长度 比如 <line x1="0" y1="5&q ...

  6. linux包之包管理命令rpm-yum

    背景 YUM(Yellow dog Updater, Modified)为多个Linux发行版的前端软件包管理器,例如 Redhat RHEL, CentOS & Fedora. YUM通过调 ...

  7. OpenJudge计算概论-鸡尾酒疗法

    /*===================================== 鸡尾酒疗法 总时间限制: 1000ms 内存限制: 65536kB 描述 鸡尾酒疗法,原指“高效抗逆转录病毒治疗”(HA ...

  8. 关于SQLServer2005的学习笔记—异常捕获及处理

    转自:http://blog.csdn.net/baoqiangwang/article/details/5395874 SQLServer2005 提供了类似于 C# 和 C++ 语言中的异常处理的 ...

  9. 详解MySQL大表优化方案( 转)

    当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型 ...

  10. 内容模块PC标签调用说明

    内容模块 模块名:content 模块提供的可用操作 操作名 说明 lists 内容数据列表 relation 内容相关文章 hits 内容数据点击排行榜 category 内容栏目列表 positi ...