在我的RecyclerView中,当您移除,添加或更改项目时,会播放默认动画。尝试等待一会儿,然后刷新适配器
但是,对项目执行其他更改会很烦人,因为如果它仍然认为RecyclerView处于动画中间,它有时会不及时更新。
所以我想稍微等一下,然后调用适配器的最终更新以确保做出这些更改。
我尝试这样做:
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()呢? 按下“确定”按钮后,您期望的行为是什么? 数据集的更改在哪里和哪里完成? – c0rtexx
在你的线程上调用.start(),而不是.run() – Guardanis