在我的一個應用程序中,我有一種情況,用戶輸入頁面並顯示進度條,直到服務器返回響應。如果服務器返回錯誤或用戶沒有互聯網(或任何其他問題),則圖像視圖將顯示下面的錯誤消息。下面是我的問題:將帶有imageview和error msg的佈局放置在常規佈局xml中的佈局是否更好,該佈局是可見性=已消失的活動,然後在發生錯誤時使其可見,還是更好地製作單獨的layout.xml只是爲了錯誤,並做一個setcontentview,如果錯誤發生?如果我將setcontentview用於另一個佈局,那麼當新佈局膨脹時,用戶將看到白色閃光,而我不太喜歡這一點。另一方面,將錯誤佈局保留在常規佈局內可能會損失內存通常不會被普通用戶看到的東西。當然,還有第三種選擇 - 以編程方式添加錯誤屏幕 - 但是如果錯誤屏幕的佈局更加複雜,則會出現複雜問題。什麼是最有效的選擇?Android:實現錯誤屏幕
僞代碼如下:
<LinearLayout
android:id="@+id/mainLayout"
>
.. layout code
<LinearLayout
android:id="@+id/errorLayout"
android:visibility="gone"
>
</LinearLayout>
</LinearLayout>
編輯:我以前參與在某些情況下ViewStub的組合最終的解決方案(其中背景動作需要是不可見的,但我不希望在消耗內存可能不會顯示的東西)和DialogFragment(後臺活動需要透明顯示)。這個問題促使我認識的衆多android開發人員之間進行了激烈的離線辯論 - 其中一些人支持下面給出的活動答案,因爲它最好支持材料設計樣式,而其他人則支持使用對話框片段,因爲使用活動來實現類似這可能是矯枉過正的(額外的類,需要將其添加到清單,重複的工具欄邏輯等)。感謝所有貢獻的人。
第二次編輯:在處理完這個問題之後,我還沒有確定對話框片段解決方案。如果您在屏幕上顯示錯誤,並且您希望用戶認爲它是屏幕的有機部分,則頂部工具欄必須是可點擊的。一個dialogfragment離開頂部工具欄可見,但點擊它並沒有被註冊,因爲即使dialogfragment的尺寸沒有佔用整個屏幕,它仍然在片段管理器的「整個」屏幕上它自己的層中,並且竊取了所有點擊。我傾向於認爲真正做到這一點的唯一方法是使用viewstub。
爲什麼你不能使用DialogFragment與您的錯誤信息? –
查看我之前關於dialogfragment回答的對話 – Jon