PopupWindow弹出之后,怎么点击外面取消不了 没用过popwindow只知道dialog可以设置dialog.setCanceledOnTouchOutside(true); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是滴,但是popupwindow怎么设置点击外部取消 http://www.cnblogs.com/joey-home/archive/2012/07/02/2573855.html 非常感谢你,但是我的popupwindow是覆盖了整个屏幕,设置背景和setoutside(true)之后就不好使了,知道原因? 原来一直没用过popwindow。。一直是用dialog或者activity的android:style/Theme.Dialog帮不了你啦。 希望能帮的上你PopupWindow pw;LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);View layout = inflater.inflate(R.layout.weight_popup, (ViewGroup)findViewById(R.id.linlay_weight_popup));pw = new PopupWindow(layout,LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT, true);pw.setBackgroundDrawable(new BitmapDrawable());pw.setOutsideTouchable(true);pw.showAsDropDown(btnSelectWeight); pw = new PopupWindow(pop, w / 3, LayoutParams.WRAP_CONTENT, true); pw.setOutsideTouchable(true); pw.setBackgroundDrawable(getResources().getDrawable( R.drawable.home_btn_bg_s)); pw.setFocusable(true);我这个就是这样设置,点击pw外面就可以关闭,看你这个应该不是这里的问题吧 LayoutInflater mLayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); menuView = (ViewGroup) mLayoutInflater.inflate(R.layout.main2, null); menuView.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_MENU)&&(myMenu.isShowing())){ myMenu.dismiss(); return true; } return false; } }); menuView.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if(myMenu.isShowing()){ myMenu.dismiss(); } return false; } }); 为什么一定要这么写才可以啊 ,我的menuView是自定以的xml,就是popupWindow的布局 那我的哪个Activity中的onMenuOpened方法只在打开popupwindow才有用, 是不是失去焦点的原因? 我大概知道原因了? 因为我从哪个Activity启动,结果哪个Activity失去焦点,当前的焦点在menuView(也就是当前的Popupwinow),所以我设置这两个事件,就起作用了。 那我怎么可以让哪个Activity不失去焦点??? 一般弹出popwindow后焦点就在其上了,为什么你偏偏不愿意让焦点在上面呢?不过你可以在pop弹出之后,让activity的某一个组件requestFocus() 我弹出popupwindow之后, 点击外面就是不知道为什么取消不了,万不得已用这个方式 myMenu.setOutsideTouchable(true); myMenu.setTouchable(true); 去掉试试再说你的popwindow是全屏 怎么点击外部?? 请问下 有没有单独让某个LinearLayout出现的时候有动画? 类似 popupwindow.setAnimationStyle(R.style.AnimationFade); 外面的点击事件能获取到吗?能获取到的话,在那里popwindow.dismiss() 就可以了啊 pop.setOutsideTouchable(true); ColorDrawable cd = new ColorDrawable(-0000); popubwindow.setBackgroundDrawable(cd);加上这句试一试 android平台写的一个服务不断重启服务内存增大 读取SIM卡联系人报错 如何将数据库文件导入到Android 真机中? SurfaceView的双缓冲是什么意思? ExpandableListView中如何添加删除child元素? android下实现4分屏播放4路高清h264格式的rtsp流 asmack获取roster时如何获取用户的更多信息比如性别,个性签名等 新人求助,android slidingmenu 今天发现很神奇的事,怎么这个加上背景才能平均?? android模拟器无法开机 求android 3D 太阳,地球,月亮实时运行代码。 是否可以获得SIM卡是否支持3G
是滴,但是popupwindow怎么设置点击外部取消
非常感谢你,但是我的popupwindow是覆盖了整个屏幕,设置背景和setoutside(true)之后就不好使了,知道原因?
帮不了你啦。
PopupWindow pw;
LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.weight_popup, (ViewGroup)findViewById(R.id.linlay_weight_popup));
pw = new PopupWindow(layout,LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT, true);
pw.setBackgroundDrawable(new BitmapDrawable());
pw.setOutsideTouchable(true);
pw.showAsDropDown(btnSelectWeight);
pw.setOutsideTouchable(true);
pw.setBackgroundDrawable(getResources().getDrawable(
R.drawable.home_btn_bg_s));
pw.setFocusable(true);我这个就是这样设置,点击pw外面就可以关闭,看你这个应该不是这里的问题吧
menuView = (ViewGroup) mLayoutInflater.inflate(R.layout.main2, null);
menuView.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_MENU)&&(myMenu.isShowing())){
myMenu.dismiss();
return true;
}
return false;
}
});
menuView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(myMenu.isShowing()){
myMenu.dismiss();
}
return false;
}
});
为什么一定要这么写才可以啊 ,我的menuView是自定以的xml,就是popupWindow的布局
那我怎么可以让哪个Activity不失去焦点???
不过你可以在pop弹出之后,让activity的某一个组件requestFocus()
我弹出popupwindow之后, 点击外面就是不知道为什么取消不了,万不得已用这个方式
去掉试试再说你的popwindow是全屏 怎么点击外部??
popubwindow.setBackgroundDrawable(cd);加上这句试一试