在android中Dialog是我們常用的控制之一,經常來做一些提示相關的工作 ,Google爲了方便開發者,也給我們提供了很多Dialog相關的定製化方法,也能在github上找到許多找到很多樣式各異的Dialog。
但是在平常的開發中有時我們也需要簡單的瞭解一下他的“生命週期”當然這裏的生命週期只是我的個人統稱,通常一個Dialog的簡單一生是,create ->show ->dismiss 就這樣終結了
下面試一個簡單的Dialog的使用:
有些時候我們需要在Dialog的一些方法中處理一些事情,我最近就有一個類似的需求,在Dialog消失的時候處理一些相關的事情,但是又不能強迫用戶非要去單擊你的確認或者取消按鈕,於是就只能通過監聽Dialog消失時所走的一些方法,因爲Dialog消失有很多種情況,但是又怎麼保證你寫的方法一定會在Dialog消失時執行哪,於是就各種嘗試,最後發現不管你怎麼把Dialog弄消失,最後都會執行onDismissListener的監聽方法
情況一:單擊返回鍵或單擊屏幕其他地方時,Dialog會執行onCancel ->onDismiss
情況二:單擊Dialog上的按鈕:Dialog會直接執行onDismiss的監聽方法
當然進程被殺掉這是一種特殊情況下
以上只是Dialog的簡單解釋,Dialog還有博大精深的需要自己慢慢挖掘,當然有時候我們也可以把一個Activity當做Dialog來使用,只需要我們寫好相關的佈局樣式,然後給這個Activity設置自己的主題樣式,主要就是android:backgroundDimAmount 的設置和android:windowBackground以及android:windowIsTranslucent的設置就可以簡單的實現把一個Activity當Dialog來使用。
作者:沐絡
鏈接:https://www.jianshu.com/p/cd8bd2cb78c7
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。