Android在Dialog中显示PopupWindow不全问题解决
2014-05-13 11:10
585 查看
问题:
使用PopupWindow的showAtLocation(View parent,Gravity g,int x ,int y)方法来指定它的位置。如果parent参数传Dialog上的控件,PopupWindow显示是在Dialog之上,但是他的显示位置会因为Dialog的大小而载掉一部分;
如果parent参数传Window.getDecorView(),g,x和y的值不变,PopupWindow是在屏幕下方弹出,但是会被Dialog层挡住。
网上解决方法如下:
1、实例化PopupWindow时,设置其width为屏幕宽度;2、获取PopupWindow的高度:
popup.getContentView().measure(0, 0);
int height = popup.getContentView().getMeasuredHeight();
3、调用showAtLocation方法时,第一个参数传Dialog上的View,比如edit,调用方法如下:
showAtLocation(edit,Gravity.BOTTOM,0,-height);
这样弹出PopupWindow就会在屏幕下方,并且悬浮在Dialog之上而不会被Dialog遮挡。
我的解决方法:
设置dialog背景透明的风格,并把dilog大小设置为全屏,dilog的内容居中,再设置PopupWindow即可!设置Dialog全屏 代码:
WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.width = getContext().getResources().getDisplayMetrics().widthPixels; lp.height = getContext().getResources().getDisplayMetrics().heightPixels; // 如果不是全屏要送去状态栏高度 getWindow().setAttributes(lp);
相关文章推荐
- 【完美解决系列】Android在自定义Dialog中TextView内容显示不全的问题
- 使用软引用解决Handler内存泄露和显示Popupwindow、Dialog时提示"Unable to add Window-token is null"的问题
- 使用软引用解决Handler内存泄露和显示Popupwindow、Dialog时提示"Unable to add Window-token is null"的问题
- 使用软引用解决Handler内存泄露和显示Popupwindow、Dialog时提示"Unable to add Window-token is null"的问题
- PopupWindow里显示listview 解决ListView取不到ItemClick事件问题
- Android中ListView放入PopupWindow产生问题解决
- android AlertDialog显示错误 Unable to add window token null is not for an application解决办法
- Android——6.0 Scrollview嵌套Recyclerview导致显示不全,滑动卡顿问题解决
- Android开发中ScollView嵌套ListView显示不全问题解决
- Android 6.0+ RecyclerView嵌套在ScrollView显示不全以及Android 7.0+ PopupWindow位置显示不对的问题解决
- Android中ScrollView嵌套GridView,解决GridView显示不全的问题
- MPAndroidCharts:解决“禁用图例,直接禁用X轴会显示不全”的问题
- 解决android ScrollView滚动显示不全问题
- 【Android基础学习】动态设置 listView的高度,解决scrollView中嵌套listview时显示不全的问题
- Android中ScrollView嵌套GridView,解决GridView显示不全的问题
- android 使用Dialog实现Toast效果,解决有的机型不显示Toast的问题(保证能用)
- Android PopupWindow 与 软键盘 的遮挡问题解决
- AJAX tab显示不全及Android ADT不能下载的问题(已解决)
- Android 关于重写一个居中的Dialog时,背景图片显示不全的问题。Dialog的style属性介绍
- Android AlertDialog 里弹Popwindow数据显示不全问题