【问题标题】:Flickering when loading content asynchronously异步加载内容时闪烁
【发布时间】:2013-01-28 21:10:04
【问题描述】:

我在ListView 中异步加载从SQLiteDatabase 查询的内容。我使用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();
        }
    }
}

不过,这没什么大不了的。 但是,有一个小问题,内容没有立即加载,这会导致闪烁,我认为这非常难看。 我不知道如何“修复”,希望你能帮助我。非常感谢!

【问题讨论】:

    标签: java android asynchronous android-listview android-asynctask


    【解决方案1】:

    我希望目前您在适配器中添加所有项目,然后在最后执行 notifydatasetchanged()。因此,在填充整个适配器后更新 UI。

    仅在您的 doQuery() 函数中,您应该在适配器中添加项目,然后为前 10 个项目(可见项目)每个项目调用 notifydatasetchanged()(在可见项目之后,请在添加整个列表后调用 notifydatasetchanged()) .

    这将为 UI 提供您想要的流畅感。希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-23
      • 2013-11-27
      • 1970-01-01
      • 2015-09-10
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多