Realm
의 항목을 표시하는 RecyclerView
이 있습니다. 은 내가 OrderedRealmCollection
이 전달 도착되는 realm-android-adapters에 따라 RealmRecyclerViewAdapter
을 구현 이렇게하려면.이를 위해 을 내가 findAllAsync()
안드로이드에서 UI를 차단하지 않고 onClick 후에 RealmModel을 올바르게 업데이트합니다.
realm.where(Entry.class).findAllAsync()
로 데이터를로드 그는 "좋아하는 옵션에이 목록을 통해 사용자가 스크롤이있는 경우 "항목 중 일부는"즐겨 찾기 "버튼에 보통 OnClickListener
으로 구현했습니다.
사용자가 버튼을 클릭 할 때마다 항목의 "즐겨 찾기"부울을 업데이트하고 싶습니다. 사용자가 클릭하면 버튼에 작은 애니메이션이 표시됩니다. 이를 위해
나는 슬프게도 잘못된 스레드 예외를 제공하는 다음과 같은 시도 : 나는 작동 정상 executeTransaction
와 그것을 시도 대안으로
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
entry.setLiked(!entry.isLiked());
}
});
을하지만, 표시되는 애니메이션을 방지 할 수 있습니다. 이것은 다음과 같은 로그를 제공 흥미로운 추가로
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
entry.setLiked(!entry.isLiked());
}
});
:
지역 쓰기와 비동기 쿼리를 혼합은 피해야한다. Realm은 일관성을 유지하기 위해 비동기식 쿼리를 동기식으로 변환합니다. 대신 비동기 쓰기를 사용하십시오.
지연을 도입하거나 애니메이션이 표시되지 않도록 항목을 완전히 비동기로 업데이트 할 수 있습니까?
당신은 단순히'adapter.notifyDataSetChanged()'방지 응용 프로그램에 관련이 맞다. 이것은 내가 업데이트 할 때마다 트리거 될 것이라고 완전히 간과했다. 감사 – mikepenz