android 怎么实现点击屏幕其他地方popupwindow消失

我看网上问的都是怎么让他不消失,难道他默认是消失的吗?我的怎么点击屏幕其他地方,他不消失。求大神帮助。... 我看网上问的都是怎么让他不消失,难道他默认是消失的吗?我的怎么点击屏幕其他地方,他不消失。求大神帮助。 展开
 我来答
QQMSD8
推荐于2016-10-17 · 知道合伙人软件行家
QQMSD8
知道合伙人软件行家
采纳数:6788 获赞数:13239
没有做不到,只有想不到,帮助别人的同时也是对自己的提升

向TA提问 私信TA
展开全部

只需要设置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();  
            }  
        });  
    }
微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
a172986431
2014-04-24 · 超过72用户采纳过TA的回答
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:120万
展开全部
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;
}
});
追问
m= new PopupWindow(Global.SCREEN_WIDTH/4, Global.SCREEN_HEIGHT/5);
m.setContentView(popupWindow);
下面是按你的copy下来的,字数有限制,我就省略了
我按照你的代码这样实现之后还是不行啊
追答
mWindow.setOutsideTouchable(true);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式