Light2333 2016-08-29 02:29 采纳率: 0%
浏览 3726

关于fragment下popupwindow点击外侧不能取消的且可点击外部控件的问题

关于fragment下popupwindow点击外侧不能取消的且可点击外部控件的问题

  • 写回答

3条回答 默认 最新

  • Light2333 2016-08-29 02:44
    关注

    之前被这个问题困扰了很久,百度了很多例子好多用了还是没效果,继续奋斗了好久才找到一个适合的方法,看有的还说可以重写OnTouchListener(),本人觉得太麻烦,就用了另外一种简单的方法,很简单照着改就好了,直接贴代码
    //获取popupwindow布局文件
    View contentview = LayoutInflater.from(getContext()).inflate(R.layout.mine_login_popupwindow,null);
    //实例化popupwindow并设置popupwindow显示样式
    final PopupWindow popupwindow =new PopupWindow(contentview,ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
    //在popupwindow显示之后使fragment上其他控件失去焦点,不可点击
    popupwindow.setFocusable(true);
    //设置popupwindow显示的位置
    popupwindow.showAtLocation(contentview, Gravity.CENTER,0,0);
    //设置点击popupwindow外的其他位置也可取消popupwindow
    popupwindow.setOutsideTouchable(true);
    //这是popupwindow的背景,这个是必须设置的且不能为null
    popupwindow.setBackgroundDrawable(new BitmapDrawable());
    //设置整个控件的触摸事件,并使popupwindow消失
    contentview.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
    popupwindow.dismiss();
    return false;
    }
    });
    就这么多了,这是我个人感觉最方便的一种方法,如果建议请留言~

    评论

报告相同问题?

悬赏问题

  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站