我希望当按下后退按钮以关闭弹出窗口。 我试着用这个代码: popwindow.setBackgroundDrawable(new BitmapDrawable());
和它的作品。 但是,在我的应用程序,弹出应该保持,甚至触摸弹出窗口之外之后。 它应该只在按下后退按钮被解雇。 所以,我想这一点: popwindow.setFocusable(false);
现在,它在弹出外脚不沾解雇。 但它不是解雇背部受压过。 我不想在此改变`onBackPressed()。 是否有任何其他的方式,通过它我可以做到这一点。 提前致谢..
Answer 1:
要禁用弹出解雇时点击 popwindow集以外
popwindow.setCanceledOnTouchOutside(false);
并消除它的后退按钮集
popwindow.setCancelable(true);
Answer 2:
popupWindow.showAtLocation(popupView, Gravity.CENTER, 0, 0);
popupWindow.setOutsideTouchable(true);
popupWindow.setFocusable(true);
new ScaleInAnimation(popupView).animate();
popupWindow.getContentView().setFocusableInTouchMode(true);
popupWindow.getContentView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
popupWindow.dismiss();
return true;
}
return false;
}
});
Answer 3:
设置这样的..
popupWindow.setOutsideTouchable(true);
popupWindow.setTouchable(true);
popupWindow.setBackgroundDrawable(new BitmapDrawable()); popupWindow.setTouchInterceptor(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
if (AppContext.isDebugMode())
Log.d("POPUP_WINDOW", "v: "+v.getTag() + " | event: "+event.getAction());
popupWindow.dismiss(); return true;
}
});
Answer 4:
除了从setOutsideTouchable(true)
和setFocusable(true)
我不得不添加
popUpView.setBackgroundDrawable(new BitmapDrawable())
使它工作。 这并没有改变我的弹出窗口的UI,但由于某些原因的神奇,使后退按钮功能。
Answer 5:
下面的代码可以是有益的:
popupWindow.setOutsideTouchable(true);
popupWindow.setFocusable(true);
popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow.showAsDropDown(mParent);
而且,popupWindow(popupWindow.showAsDropDown或popupWindow.showAtLocation)的演出必须在结束时调用。
Answer 6:
设置弹出财产..
popup.setOutsideTouchable(false);
popup.setCancelable(true);
文章来源: Dismiss Pop up window when back button is pressed