24

フラグメントビューをキャッシュしたいのですが。マイアクティビティにはスワイプ可能なタブがあり、各タブは異なるフラグメントを呼び出します。しかし、タブ間をスワイプすると、フラグメントビューが破壊されたため、遷移が非常に遅いように見えます。これは、スワイプ操作中に再構築されます。この問題を防ぐために各フラグメントのビューをキャッシュする方法を知っている人はいますか?ライブラリサポートv4とapi14を使用しています

フラグメントのアクティビティコンテナによって呼び出されるフラグメントのコンストラクタを実装しようとしました。コンストラクタを呼び出すと、フラグメントはアクティビティクラスの変数として作成され、フラグメントがそれ自体を表示する必要があるときはいつでも、アクティビティクラスは以前に作成したフラグメントオブジェクトですが、フラグメントのビューがとにかく破壊されるため、これはアプリケーションをあまり改善しません

4

1 に答える 1

23

これは、内部的にデフォルトでページャーが一度に最大3ページ(フラグメント)をロードするためです。前と次のページが表示されるため、5つのフラグメントがある場合、最初から最後に移動するときにこれが発生します。ロードされたフラグメント)

xx000-> xxx00-> 0xxx0-> 00xxx-> 000xx

使ってみてください

myPager.setOffscreenPageLimit(ITEMS_COUNT-1);

これにより、ページャーはすべてをメモリに保持し、スワイプするたびに破棄/作成しないように指示されます(メモリ管理を注意深く監視してください)

于 2013-01-07T15:18:04.857 に答える