繁体   English   中英

如何消除PopupWindow瞬间单击外部?

[英]How dismiss PopupWindow whem click outside?

我在项目中使用PopupWindow 而且我无法在触摸显示时关闭它。 我试过了:

@Override
    public void onResume() {
        super.onResume();
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                View popup = LayoutInflater.from(getActivity()).inflate(R.layout.popup, null, false);
                final PopupWindow popupWindow = new PopupWindow(popup, (int) DpiToPixel.calculateDpToPixel(150, getActivity()),
                        (int) DpiToPixel.calculateDpToPixel(150, getActivity()), true);
                popupWindow.showAtLocation(rootView, Gravity.CENTER, 0, 0);
                popup.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        popupWindow.dismiss();
                    }
                });
                popupWindow.setOutsideTouchable(true);
                popupWindow.setTouchable(true);
                popupWindow.setBackgroundDrawable(new BitmapDrawable());
                popupWindow.setTouchInterceptor(new View.OnTouchListener() {
                    @Override
                    public boolean onTouch(View v, MotionEvent event) {
                        Toast.makeText(getActivity(),"Click!",Toast.LENGTH_LONG).show();
                        popupWindow.dismiss();
                        return true;
                    }
                });
            }
        }, 100L);
    }

但这不起作用。 我尝试了popupWindow.setFocusable(true); 我在PopupWindow上尝试过setBackgroundDrawable均不起作用。 我怎样才能消除此弹出窗口????????????

设置BackgroundDrawable ,然后将setOutsideTouchable参数设置为true。

setOutsideTouchable:指示是否将其窗口之外的触摸事件通知弹出窗口。

popupWindow.setBackgroundDrawable(new ColorDrawable());
myPopupWindow.setOutsideTouchable(true);

或尝试以下方法:

myPopupWindow.setFocusable(true);

将此语句移到run()方法的末尾:

popupWindow.showAtLocation(rootView, Gravity.CENTER, 0, 0);

换句话说,直到您完成所有调用后才显示该弹出窗口。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM