我想在彈出窗口顯示時處理回按。在某些情況下,我想解僱它,在某些情況下,我不想在彈出窗口中執行某些任務。onBackPress當彈出窗口顯示時未調用
當顯示彈出窗口,活動onBackPress不會被調用。那麼如何在彈出窗口顯示時捕捉回按事件?
我想在彈出窗口顯示時處理回按。在某些情況下,我想解僱它,在某些情況下,我不想在彈出窗口中執行某些任務。onBackPress當彈出窗口顯示時未調用
當顯示彈出窗口,活動onBackPress不會被調用。那麼如何在彈出窗口顯示時捕捉回按事件?
您需要在您的PopupWindow
上致電setBackgroundDrawable()
,並將背景設置爲非null
。這聽起來很奇怪,但如果background
沒有被設置的東西在你的PopupWindow
那麼它將不能夠從Activity
檢測等事件,觸摸窗口或後按下按鈕之外。
我有同樣的問題,只是前幾天。我會盡力找到答案,如果有人解釋爲什麼這是如此,但可能需要我一點點。同時,試試看它應該起作用。
我還沒有機會測試它,但你可以嘗試添加keyEventListener
,做這樣的事情
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
// put your code here
}
,並添加setOutsideTouchable(true)
您PopupWindow
對象,並對其調用update()
。如果這不起作用,那麼當彈出窗口顯示時,您可能不得不關閉後退按鈕,並將您自己的Button
添加到窗口中。我還沒有發現任何可以讓你從後退按鈕中選擇事件的功能。
@Override
public void onBackPressed() {
//your code
}
將可繪製背景設置爲非null將始終關閉彈出窗口。我有一些情況,我不想關閉彈出窗口,而是在彈出窗口中執行一些任務。那麼當彈出窗口可見時,有什麼方法可以捕獲回新聞事件。 –
我已經更新了一些東西來嘗試。我希望它有幫助,但我不確定當使用'PopUpWindow'時你想要做什麼 – codeMagic
final PopupWindow popup = new PopupWindow(context);
...
popup.setFocusable(false); //Setting this to true will prevent the events to reach activity below
popup.setBackgroundDrawable(new BitmapDrawable()); //Or anything else, not null!
在您的活動
然後可以幫助他人。 這樣做有
1)如果彈出窗口兩個重點選項不是重要的,你再設置
mPopupInfoWindow.setFocusable(false);
因爲如果你的彈出窗口是焦點,那麼它不會傳回新聞發佈會的活動這就是爲什麼onBackPressed()方法不叫
2)如果彈出窗口焦點事宜中爲你再讓它真實,設置該監聽器在彈出的窗口。此代碼對我的作品
mPopupInfoWindow.getContentView().setFocusableInTouchMode(true);
mPopupInfoWindow.getContentView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
mPopupInfoWindow.dismiss();
return true;
}
return false;
}
});
組後臺繪製這樣
popup.setBackgroundDrawable(new BitmapDrawable());
然後設置OnDismissListener這樣
popup.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
//do your code here
}
});
我知道爲時已晚,但它:
[點擊這裏](http://stackoverflow.com/a/8606966/2345913)也閱讀它的評論 – CRUSADER
設置背景繪製非空將永遠關閉彈出窗口。我有一些情況,我不想關閉彈出窗口,而是在彈出窗口中執行一些任務。那麼當彈出窗口可見時,有什麼方法可以捕獲回新聞事件。 –