RecyclerViewには、アイテムの削除、追加、または変更時に再生されるデフォルトのアニメーションがあります。ちょっと待ってからアダプタをリフレッシュする
しかし、RecyclerViewがまだアニメーションの途中にあると考えていると時間がたつと更新されない場合があるので、アイテムに追加の変更を加えるのは面倒です。
私はちょっと待ってから、アダプターの最終更新を呼び出して、実際にそれらの変更が行われたことを確認したかったのです。 sleepコマンドは、まだメインスレッドを占有しているように見える何らかの理由しかし
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
refreshAdapter();
}
});
}
}).run();
:
は、私はこれを試してみました!私はDialogFragmentでOKを押した後に起動し、何かを前に進める前に少しだけハングアップしています。その時までに、アニメーションを一切やっておらず、最終結果にまっすぐジャンプします。
これを修正するにはどうすればよいですか?
はrefreshAdapter()が何をするのでしょうか? "OK"ボタンを押した後の動作は何ですか? データセットの変更はどこでどこで行われましたか? – c0rtexx
あなたのスレッドで.start()を呼び出してください。.run() – Guardanis