0

ビュー ページャーに 5 つのパン ページのセットがあります。これらのページにはすべてリスト ビューがあります。データが多すぎるため、サーバーからデータをプリフェッチし、リストの位置 +1 自体に入力します。

例: ページの位置が 0 の場合、ページ 0 自体の間にページ 1 のデータをアダプターにロードします。

問題は、ページをゆっくりとパンすると、リストにデータが入力されて美しく表示されることです。高速でパンすると、画面が空になり、リストが表示されません。

私はviewpager.getadapter、notifydatasetchanged()、invalidate()、onpagechangelistener()を試しましたが、何も機能しません。この小さな問題に何週間も悩まされています。ガイドしてください。

4

2 に答える 2

0

bitmapFunの例に示すように、結果を RAM と外部/内部ストレージの両方にキャッシュするのはどうですか?

また、viewpager で notifydatasetchanged を呼び出す代わりに、フラグメントの listView で呼び出します。私はそれが必要だとさえ思わない。

いずれにせよ、フラグメント間をスクロールするときにフラグメントの状態を保存したい場合は、onCreate メソッドでsetRetainInstance(true)を呼び出すか、 onSaveInstanceStateを使用して自分で状態を保存 & 復元します。

読み込みが遅いことについては、読み込みを同時に行うようにし (asyncTask のexecuteコマンドについて読んでください)、fragment を離れるときに asyncTask のキャンセルを呼び出します。あなたが持っている動作は、asyncTasks がキュー方式で追加されるためです。新しいものを実行するには、古いものを停止する必要があります。

于 2012-09-08T07:21:55.900 に答える
0

ページ間でコンテンツをロードするためのロード ダイアログを用意しました。これで機能するようになりました。

于 2012-10-01T08:56:46.303 に答える