我以SQLiteDatabase
异步加载我的内容,该内容从ListView
查询。我使用AsyncTask
,基本上看起来像这样:
private final class QueryTask extends AsyncTask<Boolean, Void, Boolean> {
@Override
protected Boolean doInBackground(Boolean... params) {
doQuery();
if (querySuccessfull) {
return true;
} else {
return false;
}
}
@Override
protected void onPostExecute(Boolean boo) {
if (boo) {
setAdapterToListView();
} else {
loadEmptyView();
}
}
}
但是,这并不是什么大不了的事。 但是,有一个小问题,内容没有立即加载,导致闪烁,我觉得非常难看。
我不知道如何“修复”,希望你能帮助我。非常感谢!
答案 0 :(得分:2)
我希望你现在正在添加适配器中的所有项目,然后在最后执行notifydatasetchanged()。在整个适配器填满后,UI会更新。
仅在你的doQuery()函数中,你应该在适配器中添加项目,然后为每个项目调用前10项(可见项目)的notifydatasetchanged()(在可见项目之后,请在添加整个列表后调用notifydatasetchanged()) 。
这将为UI提供您想要的流畅感觉。希望它有所帮助。