問題タブ [fastadapter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - データが同じままでも、LiveData からロードした後に FastAdapter がちらつく
質問のために、Github で簡単で実用的な例を用意しました:
サンプル アプリは、okhttp を使用してゲームの上位 30 人のプレーヤーを含む JSON 配列をダウンロードし、それらを SQLite Room に保存します。フラグメントで、対応するオブジェクトを観察しLiveData<List<TopEntity>>
、FastAdapter インスタンスを更新します。
私の問題は、データがダウンロードされるたびに、リサイクラー ビューが 1 回ちらつくことです。
上位 30 位は頻繁に変更されるわけではありませんが、データは同じままです。
Penz 氏による優れたFastAdapterライブラリのサンプル アプリを見ると、ちらつきは見られません。
アップデート:
ちらつきは明らかにメソッドの呼び出しによって引き起こされているというヒントがあり、代わりに DiffUtil クラスを使用する必要があります。mItemAdapter.clear();
onChanged
だから私は新しいクラスを追加しました:
そして、onChanged
呼び出すだけでなくメソッドで使用しようとしてmItemAdapter.clear()
いますが、 RecyclerView にtops
は要素があっても空のままです:
私の問題の短い要約:
私の実際のアプリはいくつかの理由で使用しており、データが HTTPS 経由でダウンロードされて Room で更新されるときの 1 回限りのちらつきをなくすために、 DiffUtilFastAdapter
と「結合」する方法を探しています。
android - FastAdapter と ConstraintLayout のスクロールの問題: スキップされた 211 フレーム
私の問題のために、Github で非常に単純な AndroidX テスト アプリを用意しました。
MainActivity で非常に優れた FastAdapter ライブラリを使用しています。
アイテムのレイアウトには、8 つの TextView と 4 つの ImageView を備えた ConstraintLayout を使用します。
携帯電話 (Moto G2 と Moto G4 Play を使用) でアプリをデバッグし、10 項目のみのリストをスクロールすると、警告が表示され続けます。
私の実際のアプリには、そのようなエラーを生成しない他のレイアウトのフラグメントがあるため、古い携帯電話が原因ではないと思います。また、特に速くスクロールしたり遅すぎたりすることはありません。
android - FastAdapter ヘッダーとアイテムを組み合わせる
mikepenz のライブラリ fastadapter を使用しています https://github.com/mikepenz/FastAdapter
異なるビューを組み合わせる必要がある
アイテムのクラス
表示ヘッダーのクラス
生成アイテム用
2 種類のビューを表示できるようにアダプターを組み立てる方法がわかりません。
簡単な例?リポジトリにあるものは複雑すぎて理解できないため