【发布时间】:2016-10-29 07:43:42
【问题描述】:
我想在 android 中显示弹出窗口时处理后按事件。 我喜欢这样。 在片段中:
@Override
public boolean onBackPressed() {
if (backPressStrategy == BACK_PRESS_PLAN_A) {
if (guideDialog != null) {
guideDialog.dismiss();
}
closeFlashPay(REQ_CLOSE_FLASH_PAY_AND_FINISH);
return true;
} else if (backPressStrategy == BACK_PRESS_PLAN_B) {
if (guideDialog != null) {
guideDialog.dismiss();
}
getActivity().finish();
return true;
} else {
return false;
}
}
在活动中,我确实喜欢这样
@Override
public void onBackPressed() {
PayBaseFragment contentFragment = (PayBaseFragment) getSupportFragmentManager().findFragmentByTag(TAG_CONTENT_FRAGMENT);
if (contentFragment != null && contentFragment.onBackPressed()) {
return;
}
super.onBackPressed();
}
问题是,当我第一次按下返回按钮时,弹出窗口刚刚消失,并且没有调用覆盖 onBackPressed 方法。除非我按两次后退按钮。 我像这样显示我的弹出窗口
guideDialog.showAtLocation(getActivity().getWindow().getDecorView(), Gravity.CENTER, 0, 0);
感谢您的帮助
【问题讨论】:
-
我认为该对话框正在使用后按作为取消。看看这个stackoverflow.com/questions/10346011/…
-
我看到了这个链接,问题是我将popupwindow设置为可访问的。应该设置为假
-
我不是 100% 确定您期望发生什么。在对话框中设置 onKey 监听器并在那里调用 closeFlashPay 方法
标签: android android-popupwindow