1

Android docsには、起動するたびFragmentStatePageAdapterにインスタンス化するがあります。これは正気ですか?確認しましたが、これはスワイプするたびに発生します。つまり、毎回作成されますか? これは正しいです?FragmentgetItemFragment

@Override
public Fragment getItem(int i) {
    Fragment fragment = new DemoObjectFragment();
    Bundle args = new Bundle();
    // Our object is just an integer :-P
    args.putInt(DemoObjectFragment.ARG_OBJECT, i + 1);
    fragment.setArguments(args);
    return fragment;
}

私はAndroidにかなり慣れていないので、これについて健全性チェックが必要でした。正しく聞こえません。

4

1 に答える 1

1

これは正常FragmentStatePagerAdapterです。

ドキュメントに従って:

このバージョンのページャーは、多数のページがある場合に便利で、リスト ビューのように機能します。ページがユーザーに表示されない場合、フラグメント全体が破棄され、そのフラグメントの保存された状態のみが保持されます。これにより、ページャーは、FragmentPagerAdapter と比較して、訪問した各ページに関連付けられたメモリをはるかに少なく保持できますが、ページを切り替えるときにオーバーヘッドが増える可能性があります。

したがって、FragmentStatePagerAdapter は、メモリ フットプリントを比較的低く保つのに役立つすべての面倒な作業を行います。これを行うために、目に見えないフラグメントを破壊することがあります。

一般に、ViewPager がメモリに保持するオフスクリーン ページの数を で設定できますViewPager.setOffscreenPageLimit()

于 2013-06-17T16:57:03.153 に答える