它取決於應用程序,以及應用程序在遇到此 錯誤時能夠執行的操作。
,谷歌提出的Material Design Guide處理這些類型的消息,這兩種方法是:
Dialogs(在這種情況下,警告對話框):
和Snackbars:
要你以你的示例爲例:某些數據是從遠程服務器請求的,但由於某些錯誤或異常,提取失敗並且沒有數據返回。
此時,錯誤消息的類型將取決於應用程序如何從該點開始運行,而沒有該數據。如果應用程序按照原樣運行,意味着獲取與後臺更新類似,則適當的顯示應該是Snackbar。爲什麼?
從指南:
小吃店通過顯示在屏幕的底部的一個簡短的消息提供有關的操作輕便的反饋。 Snackbars可以包含一個動作。
輕量級是真正的原因。如果應用程序在沒有獲取後臺數據的情況下運行,則不應該通過消息阻止UI。只要讓用戶知道事情沒有按照他們應該的方式工作,以便他可以做些事情,如果他在意的話。
下面是從guide截取的示例:
對於代碼:所述Developer Docs on Snackbars
決不使用吐司。吐司太小,太短暫,可能會被忽視。使用小吃店。
但是,在應用程序無法運行的情況下,或者只顯示沒有該數據的空白屏幕時,正確的做法是顯示警報對話框。
沒有人希望只看到一個空白屏幕,如果你不能用數據填充它,你需要給用戶一個屏幕,他們可以執行其他功能,即使這是退出應用程序。
從指南提醒:
警報通知用戶,需要在繼續之前他們 確認或確認的情況或行動。根據所傳輸信息的嚴重程度和影響,它們在外觀上稍有差異。
警報是中斷的,緊急的,並且阻止用戶在作出決定前繼續執行 。
和
歧從小吃店:一個動作之後與此相反警報,小吃店 目前可選的,但重要的信息或動作,通常 出現。例如,使用警報確認丟棄草稿 。使用快餐欄來提交撤銷操作,因爲 該操作是可選的,用戶可以繼續其主要的 任務而不採取任何措施。
因此,如果沒有該數據的應用程序將無法正常工作,請使用Alert Dialog。
謝謝。但至少有一個代碼示例會很好。那個警告圖標是一個內置的Android drawable還是你自己的drawable之一? – RenniePet
當發生非常重要的事情時,您應該只顯示一個對話框,並且您需要確認用戶,或者您需要絕對確定他們需要知道。例如:如果沒有互聯網連接,只有在沒有互聯網的情況下才能顯示任何內容,如果緩存內容並且應用程序仍然可用但不新鮮,則顯示一個對話框,您會顯示類似於油煎麪包塊或應用內通知的內容並嘗試在後臺訪問您的數據並刷新。小心對話,這是非常侵入性的 – MariusBudin