2

短いバージョン: データの読み込み中に、アダプター内のデータセットの数が (最初の 4 から) 増加します。getView新しいデータが到着した後 (getCount現在は 7 を返します)、位置 4 から 6 が照会されます。代わりに、最初の 4 つの項目をすぐに更新したいと思います。

私の質問 -が起動されたときに、位置 0 から 3のListViewクエリを再度作成するにはどうすればよいですか?getViewnotifyDataSetChanged

この動作の原因は、ListView. 私のアプローチは大まかにChet Haase の例に基づいています。 aは( に加えて)DataSetObserver私のアダプターも受け取り、を に追加してアニメーションを起動します。アニメーションは( を使用して) で実行され、300 ~ 600 ミリ秒かかります。アニメーションを開始する行をアウトコメントすると、動作は思いどおりになります。は位置 0、1、2、3 に対して呼び出され、続いて 0、1、2、3、4、5、6 に対して呼び出されます。onDataSetChangeListViewonPreDrawListenerListViewViewTreeObserveronPreDrawListenerView.animategetView

私の問題を説明するLogCatの抜粋

次のスクリーンショット (左) は、この望ましくない状態でリストがどのように見えるかを示しています。これを logcat のスクリーンショットと比較してください。ビューのテキストは、logcat の「View Text =」の後に来るものと一致します。右側は、ListView が最終的に位置 1 ~ 4 について getView を再クエリすることを決定した後、最終的に落ち着くものです。

スクリーンショット

4

0 に答える 0