如何通過單擊對話框外部來關(guān)閉對話框?我為我的應(yīng)用程序?qū)崿F(xiàn)了一個(gè)自定義對話框。我想實(shí)現(xiàn)當(dāng)用戶在對話框外單擊時(shí),對話框?qū)⒈蝗∠N以撛趺醋觯?
3 回答

牧羊人nacy
TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
如果dialog.setCanceledOnTouchOutside(true);
在對話框外觸摸,可以使用哪個(gè)將關(guān)閉對話框。
就像是,
Dialog dialog = new Dialog(context) dialog.setCanceledOnTouchOutside(true);
或者如果您的對話在非模型中,那么,
1 - FLAG_NOT_TOUCH_MODAL
為對話框的窗口屬性設(shè)置標(biāo)志
Window window = this.getWindow();window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
2 - 向Windows屬性添加另一個(gè)標(biāo)志,FLAG_WATCH_OUTSIDE_TOUCH
- 這個(gè)用于對話框以在其可見區(qū)域之外接收觸摸事件。
3 - 覆蓋onTouchEvent()
對話框并檢查操作類型。如果動(dòng)作類型是' MotionEvent.ACTION_OUTSIDE
'表示,則用戶正在對話區(qū)域外進(jìn)行交互。因此,在這種情況下,您可以減少對話框或決定要執(zhí)行的操作。查看plainprint?
public boolean onTouchEvent(MotionEvent event) { if(event.getAction() == MotionEvent.ACTION_OUTSIDE){ System.out.println("TOuch outside the dialog ******************** "); this.dismiss(); } return false; }
有關(guān)更多信息,請參閱如何根據(jù)觸摸點(diǎn)關(guān)閉自定義對話框?當(dāng)觸摸外部對話區(qū)域時(shí), 如何關(guān)閉非模態(tài)對話框
- 3 回答
- 0 關(guān)注
- 538 瀏覽
添加回答
舉報(bào)
0/150
提交
取消