android 怎么实现点击屏幕其他地方popupwindow消失
我看网上问的都是怎么让他不消失,难道他默认是消失的吗?我的怎么点击屏幕其他地方,他不消失。求大神帮助。...
我看网上问的都是怎么让他不消失,难道他默认是消失的吗?我的怎么点击屏幕其他地方,他不消失。求大神帮助。
展开
2个回答
推荐于2016-10-17 · 知道合伙人软件行家
关注
展开全部
只需要设置proupwindows的setOutsideTouchable属性即可。
以下为示例代码:
private void showPopupWindow(View parent) {
if (popupWindow == null) {
LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.group_list, null);
lv_group = (ListView) view.findViewById(R.id.lvGroup);
Collections.reverse(groups);
GroupAdapter groupAdapter = new GroupAdapter(this, groups);
lv_group.setAdapter(groupAdapter);
popupWindow = new PopupWindow(view, 200, 220);
}
popupWindow.setFocusable(true);
popupWindow.setOutsideTouchable(true); //设置点击屏幕其它地方弹出框消失
popupWindow.setBackgroundDrawable(new BitmapDrawable());
WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
int xPos = -popupWindow.getWidth() / 2
+ getCustomTitle().getCenter().getWidth() / 2;
popupWindow.showAsDropDown(parent, xPos, 4);
lv_group.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view,
int position, long id) {
loadNew(((StringItem)(groups.get(position))).getId());
if (popupWindow != null)
popupWindow.dismiss();
}
});
}
展开全部
mWindow = new PopupWindow(context);
mWindow.setTouchInterceptor(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
mWindow.dismiss();
return true;
}
return false;
}
});
mWindow.setTouchInterceptor(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
mWindow.dismiss();
return true;
}
return false;
}
});
追问
m= new PopupWindow(Global.SCREEN_WIDTH/4, Global.SCREEN_HEIGHT/5);
m.setContentView(popupWindow);
下面是按你的copy下来的,字数有限制,我就省略了
我按照你的代码这样实现之后还是不行啊
追答
mWindow.setOutsideTouchable(true);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询