0

からクエリされたコンテンツを非同期でロード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();
        }
    }
}

しかし、それは大したことではありません。ただし、小さな問題があります。コンテンツがすぐに読み込まれないため、ちらつきが発生します。これは非常に見苦しいと思います。「修正」する方法がわかりません。助けていただければ幸いです。どうもありがとう!

4

1 に答える 1

2

現在、アダプターにすべてのアイテムを追加してから、最後に notifydatasetchanged() を実行していることを願っています。これにより、アダプター全体がいっぱいになった後に UI が更新されます。

doQuery() 関数でのみ、アダプターに項目を追加してから、最初の 10 項目 (可視項目) ごとに notifydatasetchanged() を呼び出す必要があります (可視項目の後、リスト全体が追加されたら、notifydatasetchanged() を呼び出してください)。

これにより、必要な滑らかな UI が得られます。それが役に立てば幸い。

于 2013-01-28T22:16:23.127 に答える