當方向改變時,我需要我的應用程式不重新加載。我有一個常規的肖像和一個單獨的橫向布局,它們在螢屏上都有相同的東西。但是當我選中一個復選框并更改布局時,它不再被選中。或者當一個復選框中有數字 5,然后更改布局時,它會回傳到默認數字 1。我怎樣才能讓它停止重新加載?
uj5u.com熱心網友回復:
您需要使用一種方法在兩個螢屏之間保留資料。
使用 savedInstanceState 或 ViewModel。
uj5u.com熱心網友回復:
如果您確保 CheckBox 和 EditText 中的文本id在兩種布局中相同,則它們的選中狀態將被自動保留。但是,它只會自動保留可通過 UI 更改的內容,因此如果您以編程方式更改 CheckBox 的文本,則不會自動保留。通常,這類事情是通過 ViewModel 和 LiveData/Flow 來處理的。
此行為由saveEnabled視圖的屬性控制,默認情況下為 true。
uj5u.com熱心網友回復:
在清單檔案android:configChanges="orientation|screenSize中為您的活動添加以下權限
像這樣的東西
<activity
android:name=".YourActvity"
android:configChanges="orientation|screenSize">
uj5u.com熱心網友回復:
Philipp Lackner 的第一個提示解釋了如何使用 savedStateHandle https://www.youtube.com/watch?v=0d5ax97Mb30
例如,更改方向時的狀態會恢復,因此您需要通過視圖模型處理狀態持久性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/439061.html
