Dialog中弹出PopupWindow
1、PopupWindow不显示;
2、PopupWindow不能显示在Dialog的上方。
解决的方法:
PopupWindow popupWindow =
new PopupWindow(view
, (
int) (
128*LPUtils.
density)
, (
int) (
25*LPUtils.
density))
;
必须指定PopupWindow的长度和宽度才可以显示出。
PopupWindow是一个阻塞线程的一个view,当Dialog刚进入的时候,如果弹出PopupWindow,此时的线程就会被阻塞。如果此时你通过
popupWindow.showAtLocation(v
, Gravity.
NO_GRAVITY
, x,y)
;
来放置PopupWindow的位置,是不会显示在Dialog的上方。
注意:
这里说的是进入Dialog就显示PopupWindow ,点击V显示PopupWindow除外。
解决方法:
通过Handler来处理:
handler.sendEmptyMessageDelayed(0x222 , 200);通过延迟的方式,让UI线程先完成。
之后再处理显示PopupWindow
if (msg.
what ==
0x222) {
showPopupWindow( img_scan , passengerEntity_.getPreviewReco_tips()) ;
}
showPopupWindow( img_scan , passengerEntity_.getPreviewReco_tips()) ;
}