針對日常不同的需求,我們時常需要自定義 Dialog ,而小菜在嘗試過程中遇到壹些小問題,簡單記錄總結壹下;
小菜在自定義含有文本框的 Dialog 時,文本框獲取焦點時,軟鍵盤會部分遮擋對話框,但當小菜替換為 AlertDialog 時,文本框獲取焦點時,對話框會向上浮動,避免軟鍵盤遮擋;
對於含有文本框的自定義 Dialog ,小菜在最外層使用的是 Material 嵌套,小菜通過采用 Scaffold 來嵌套處理,默認 Scaffold 中 resizeToAvoidBottomPadding / resizeToAvoidBottomInset 為 true ,當設置為 false 時,文本框獲取焦點時,依舊會被軟鍵盤遮擋;因為在固定情景可以配合 resizeToAvoidBottomPadding 實現是否被軟鍵盤遮擋效果;
resizeToAvoidBottomPadding 主要用於自身 Widget 是否避免被其他窗口遮擋;其中小菜查資料介紹在 Flutter 1.1.9 之後更推薦使用 resizeToAvoidBottomInset ;
小菜自定義壹個可以多選 item 的 Dialog ,但 Dialog 中並沒有狀態更新的 State ,如何進行 Dialog 中狀態更新呢?
小菜之前在 showDialog 時直接創建了 TypeListDialog ,此時是無狀態的,當 WidgetBuilder 創建壹個 StatefulBuilder 有狀態的構造器即可,可以將 state 傳遞到 Dialog 中;
小菜在自定義 Dialog 時如何在壹個回調方法中傳遞多個參數?
小菜在 Dialog 的回調方法中傳遞兩個 List ,而在接收回調方法中匹配兩個參數即可;小菜簡單看作是壹個函數方法;
小菜在重寫 AppBar 時,如何取消默認的返回按鈕?
取消 AppBar 前面的返回圖標有多種方式;
自定義 Dialog 案例源碼
小菜對於 Flutter 的應用還不夠熟悉,很多常用的場景會處理的很不到位,小菜會對日常的小問題進行簡單記錄,逐步學習;如有錯誤,請多多指導!