[英]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.