[解決済み】FragmentPagerAdapterとFragmentStatePagerAdapterの違いは何ですか?
質問
とはどのような違いがあるのでしょうか?
FragmentPagerAdapter
と
FragmentStatePagerAdapter
?
について
FragmentPagerAdapter
Googleのガイドにはこうあります。
このバージョンのページャーは、少数の のセットなど、ページングされるべき、通常より静的なフラグメントです。 タブがあります。ユーザーがアクセスする各ページのフラグメントは しかし、そのビュー階層は表示されていないときに破棄されることがあります。 このため、大量のメモリを使用することになります。 インスタンスは、任意の量の状態を保持することができる。より大きなセットの場合 を考えてみてください。
FragmentStatePagerAdapter
.
そして、約
FragmentStatePagerAdapter
:
このバージョンのページャーは、ページャーが大量にある場合に便利です。 のページがあり、よりリストビューに近い形で動作します。ページが表示されていないときは のみを残し、そのフラグメント全体を破棄することができます。 そのフラグメントの保存状態。これにより、ページャーは、そのフラグメントの保存された状態を と比較して、訪問した各ページに関連するメモリが少なくなります。
FragmentPagerAdapter
のオーバーヘッドが大きくなる可能性がありますが、その代償として ページを切り替えることができます。
だから、3つのフラグメントしかないんです。しかし、そのすべてが大量のデータを持つ独立したモジュールなのです。
Fragment1
は、(ユーザーが入力した)いくつかのデータを処理し、アクティビティを通じて
Fragment2
であり、単なる
ListFragment
.
Fragment3
はまた
ListFragment
.
そこで質問なのですが
: どのアダプターを使えばいいのでしょうか?
FragmentPagerAdapter
または
FragmentStatePagerAdapter
?
解決方法は?
ドキュメントに書いてあるように、こう考えてみてください。ブックリーダーのようなアプリケーションを作る場合、すべてのフラグメントを一度にメモリにロードしたくはないでしょう。例えば
Fragments
を読むようにします。この場合
FragmentStatePagerAdapter
. もし、重いデータを含まない3つのタブ(例えば
Bitmaps
) の場合
FragmentPagerAdapter
がよく似合うかもしれません。また、次のことも覚えておいてください。
ViewPager
は、デフォルトで3つのフラグメントをメモリにロードします。最初の
Adapter
を破壊する可能性があります。
View
階層を作成し、必要なときにそれを再ロードします。
Adapter
の状態を保存するだけです。
Fragment
で、完全に破棄します。もしユーザーがそのページに戻ってきたら、その状態を取り戻します。
関連
-
[解決済み】Android Studioです。「プロジェクトが C ドライブに作成されている場合、「タスク ':app:mergeDebugResources' の実行に失敗しました。
-
[解決済み】ビットマップを保存する場所について
-
[解決済み】sendUserActionEvent()がnullである。
-
[解決済み] Mockito lenient() を使用する場合
-
[解決済み] BIOSのセキュリティ設定でVT-xを有効にする(お使いのコンピュータのドキュメントを参照)。
-
[解決済み] Androidのgravityとlayout_gravityの違いは何ですか?
-
[解決済み] APKのインストール中にDELETE_FAILED_INTERNAL_ERRORエラーが発生する。
-
[解決済み] match_parentとfill_parentの違いは何ですか?
-
[解決済み] FragmentのsetRetainInstance(boolean)を理解する。
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】メソッド 'findViewById(int)' を解決できない。)
-
[解決済み】Android Intent コンストラクタを解決できない
-
[解決済み】java.lang.RuntimeException: アクティビティを開始できない ComponentInfo
-
[解決済み】シンボル 'AppCompatActivity' を解決できない。
-
[解決済み】Android Studioの初回起動。Android SDKアドオンリストにアクセスできない
-
[解決済み】SDKの場所がandroid studioで見つからない。
-
[解決済み】android.content.res.Resources$NotFoundExceptionの取得:androidにリソースが存在する場合でも例外が発生する。
-
[解決済み] コンパイルした.apkを端末にインストールしようとするとINSTALL_FAILED_UPDATE_INCOMPATIBLEが表示される
-
[解決済み] 複数のデバイスを接続しているときにADB Shellを使用するには?error: more than one device and emulator "で失敗します。
-
[解決済み] ADBエラー:デーモンに接続できない