私は現在、約 25 の異なるフラグメント (および異なる)ViewPager
を含むアダプターを使用しています。スクロールすると、宣言する場合を除いて、一部のビューにスワイプすると、通常かなりの遅延が発生します。すべてのページを常にロードすることなく、この のパフォーマンスを向上させる方法はありますか?FragmentStatePager
relativelayouts
viewpager.setoffscreenpagelimit(25)
viewpager
質問する
7515 次
2 に答える
3
箱から出してViewPagerを使用すると、最大3つのフラグメント/ビューがロードされます。その番号にとどまります。遅いのはViewPagerではなく、コード内で何かを行っているために遅くなっています。フラグメントのいずれかがブロッキングまたはCPUを消費するタスクを実行しますか?たとえば、ビットマップをロードしますか?AsyncTaskで実行できる解析がありますか?たぶん、そのようなものを他の場所に置いてデータベースに保存すると、Framentをロードするときに、データベースから読み取る場合に非常にクリーンで効率的な状態を保つことができます。
于 2013-03-07T11:19:36.457 に答える
1
質問に詳細を追加していただけますか?たとえば、各ページで何をしていますか?
最新のAndroidサポートライブラリに更新しましたか?
v4サポートライブラリの変更点:
- ViewPagerのインタラクション動作が改善されました。
- ViewPagerが間違ったページを選択する可能性があるバグを修正しました。
- ViewPagerのレイアウト中のremoveView()メソッドの使用を修正しました。
- 戻るボタンを使用して閉じると検索テキストがクリアされないSearchViewCompatの問題を修正しました。この修正は、ホストAPIレベル14以降にのみ適用されます。
FragmentStatePagerAdapterはページを自動保存し、使用しない場合は削除することを常に覚えておく必要があります。したがって、非常に速くスワイプすると、ページのロード/アンロードが多くなります。メモリにロードされるページの量を増やすことを試みることができます。
于 2013-03-07T11:20:53.837 に答える