我有一個RecyclerView支持的領域findAll()
。我使用RealmChangeListener來通知列表有關更新,並且由於大量使用鈍器樂器notifyDataSetChanged(),所有工作都非常有效。與嚴格模型/視圖分離的Android領域列表
private RealmResults<Sale> allSales;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
....
// Update sales list whenever the AllSales result changes
allSales = getRealm().where(Sale.class).findAll();
allSalesListener = new RealmChangeListener<RealmResults<Sale>>() {
@Override
public void onChange(RealmResults<Sale> results) {
saleAdapter.notifyDataSetChanged();
}};
allSales.addChangeListener(allSalesListener);
....
但是,我真的很想有好的MVVC結構,保持所有領域代碼視圖模型和我的片段。 Realm的例子不這樣做。可能出於很好的理由 - 我沒有看到一種適當的方式來通知適配器RealmResults中的更改。數據綁定尚未完成;它似乎並不支持使用ObservableCollection支持RecyclerView ......即使這樣做,RealmResult也不是ObservableCollection。
在這一點上,我想我需要在我的Fragment中創建一個「ListChangedListener」接口,併爲ViewModel中的每個List屬性手動維護一組偵聽器。但是,這看起來像是一個額外的代碼,只是爲了維護視圖/模型分離。
TLDR:我正在尋找Realm支持的ListView或RecyclerView的例子,沒有Realtime代碼在View代碼中。或者甚至只是保證我的定製「聽衆」界面是一個很好的發展方向。
更新:我不知何故忽略了RealmRecyclerViewAdapter。請參閱下面的答案。