6

こんにちは ViewPager を使用していますが、セルを再生成するのではなく、状態を保持したいと考えています。

ビューページャーはリストビューのカスタムアダプターに非常に似ていることに気付きました。リストビューが画面上になくなった後にセル内のデータを再生成する場合、ビューページャーも同じように機能します。

ビューホルダー、つまり各ビューの状態を最初にロードした後に保持するある種のオブジェクトを実行して、ビューページャーのセルがより速くロードされるようにする方法はありますか。(セルごとに多少の処理とレンダリングがありますが、メモリの限界を自分でテストします)

これが私のビューページャーです

4

2 に答える 2

8

アクティブに作成されたすべての Fragment オブジェクトをメモリに保持する FragmentPagerAdapter を使用します。

/**
 * Implementation of {@link android.support.v4.view.PagerAdapter} that
 * represents each page as a {@link Fragment} that is persistently
 * kept in the fragment manager as long as the user can return to the page.
 */
于 2011-09-24T00:37:52.813 に答える
2

レイアウトをインフレートした後、レイアウトの hashMap を作成します。対応するページのレイアウトが既にある場合は、 hashMap からレイアウトを置き換えるだけです。それ以外の場合は、新しいレイアウトを膨らませて hashMap に保存します。状態を復元できるかどうかは保証できません。ただし、ユーザーがページを切り替えるたびに膨張する時間が短縮されます。

于 2011-09-22T07:11:50.960 に答える