0

背景:我使用io.realm:android-adapters:2.0.0來顯示項目列表。每行由三個TextViews和兩個EditText字段組成。這三個TextViews文本從realm架構設置。我使用的雙向數據綁定EditText喜歡:在EditText中使用雙向數據綁定與受管理的RealmObject

<EditText 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:inputType="number" 
android:text="@={Conversion.toString(offline.inputUI)}" /> 

offline是與對應於兩個EditText 2個@Ignore領域延伸RealmObject架構。當用戶鍵入時,值被反映在offline模型中。

問題:當我滾動屏幕EditText值丟失。如果屏幕上一次顯示四行,並且用戶輸入EditText並滾動顯示接下來的四行,並且如果重訪前四行,則所有EditText的值都將丟失。這是因爲零拷貝設計,我理解它。但是,如果我從EditText中刪除@Ignore,則會拋出異常,您無法執行外部事務....等。

所需的輸出如何避免EditText而滾動,並採取境界零拷貝設計的利益消失的值。另外,請根據用戶類型或用戶離開EditText後實時保存EditText的值。 真的有可能嗎?。我需要改變我目前的做法嗎?如果在焦點從EditText更改時使用頻繁寫入事務,它是否會耗盡電池電量?

回答

0

如果您想要利用Realm零拷貝架構,唯一的解決方案是保留您想要保存的所有數據,但是現在不支持自動事務的雙向數據綁定。

如果您將事務添加到數據綁定使用的所有設置器,則可以使其工作。但取決於你保存數據的頻率,它仍然可能導致你的用戶界面引入了一堆。

這是一個我們正在考慮的問題,但我們無法在短期內提供任何解決方案。

恐怕無論如何,沒有任何「簡單」的選擇。

請注意,電池耗盡不是問題,但您會非常頻繁地寫入磁盤。

+0

謝謝你,終於。除了電池電量耗盡之外,我期待着同樣的結果。這將是非常酷的功能。如果你能夠點亮https://stackoverflow.com/q/44842541/2870088的第2點) –