viewPagerを使用して多数のフラグメントを返すアクティビティを持つ英語の教育用アプリケーションを作成しています。このアプリケーションには、viewPagerを使用して同じ断片を返す追加のアクティビティを使用するユニットが追加されます(一部の単語の変更や順序の変更はありません)。フラグメントを再利用する最良の方法は何ですか?フラグメントを別のアクティビティに実装するだけですか?もしそうなら、バックグラウンドの別のアクティビティですでに同じフラグメントが使用されている場合に、新しいアクティビティでフラグメントが実装されていると問題が発生する可能性はありますか?あるいは、フラグメントやレイアウトファイルを再利用できる別の方法がありますか?前もって感謝します。フラグメントまたはレイアウトファイルの再利用
答えて
再利用性はFragment
Sを使用しての主な利点の1つですので、あなたは確かに試してみて、可能な限り、それらを再利用する必要があります。Androidのドキュメントから(https://developer.android.com/guide/components/fragments.html)
You can (...) reuse a fragment in multiple activities
再利用するたびにAndroidは新しいFragment
のインスタンスを作成するので、既存のFragment
と衝突する危険はありません(間に共有される静的変数を使用しない限り)。
ありがとう、それは私が知りたかったものです。私は今、私のアプリが私が後で問題に遭遇するつもりはないことを知っています – Ntwofive
はい、あなたは何回ものためのあなたのフラグメントと活動を再利用することができます。まず、あなたの活動は断片の容器でなければならず、活動に多くの責任を与えないようにしてください。 1つのBaseActivityを作成し、1つのレイアウト(たとえば相対レイアウト)をフラグメントコンテナとして配置し、ベースクラスから実装するすべてのアクティビティで、ベース置換フラグメントメソッドを呼び出すことができます。ここで
private void changeFragment(Fragment targetFragment){
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.main_fragment, targetFragment, "fragment")
.setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.commit();
}
タグを取得するときに、あなたがそうよりよいこの部分抽象メソッドをやって。ということであるフラグメントを認識することができ、新たなフラグメントには、すべての異なるフラグメントのための「フラグメント」タグを変更する必要があります。
ありがとうございます。これは私の質問にも答えます。私は間違いなく将来の参照のためにフラグメントを置き換える方法を念頭に置いています。申し訳ありませんが2つの答えを受け入れることはできません。 – Ntwofive
- 1. 再利用フラグメント
- 2. Android - シングルアクティビティのマルチフラグメントケースのフラグメントでの再利用の表示
- 3. 異なる視点のフラグメントの再利用
- 4. 複雑なHTMLフラグメントを再利用する最良の方法
- 5. Spring XMLフラグメントを再利用する方法
- 6. アンドロイドスタジオでフラグメントを再利用してタブ位置を取得
- 7. XMLレイアウトファイルを再利用してさまざまな情報を表示する(Androidアプリケーション)
- 8. 再利用のモデルは
- 9. IHttpHandlerは再利用可能ですが再利用されません
- 10. バックボーンビューのベストプラクティス:再利用または作成しますか?
- 11. Web.configは同じセクションまたはフィールドを再利用します
- 12. WPF - 再利用
- 13. 再利用アクションメーラテンプレート
- 14. 再利用値
- 15. コードの再利用
- 16. カスタムセルの再利用
- 17. UIWebViewの再利用
- 18. スイッチステートメントロジックの再利用
- 19. dbcontextの再利用
- 20. UIViewの再利用
- 21. ニューラルネットワークの再利用
- 22. TensorflowでのLSTMの再利用再利用
- 23. ListViewの利点ListViewまたは通常のフラグメントの上に
- 24. Web ApiプロジェクトでのCrmServiceClientの再利用または接続プーリング
- 25. Ansibleはec2_eni再利用ENI
- 26. ObjectMapper再利用モデルは
- 27. 再利用中断または結合後のブーストスレッド(スレッドプールから)
- 28. 測定単位 - 異なるユニットが再利用された再利用メソッド
- 29. アンドロイドで使用されるレイアウトファイルは、デフォルトまたはmdpiから
- 30. pyodbcカーソル再利用
詳細をご記入ください。あなたは、2つのインスタンスならば何も問題はありません、また この(http://stackoverflow.com/questions/7951730/viewpager-and-fragments-whats-the-right-way-to-store-fragments-state)を読みたいかもしれませんは、バックスタックで利用可能です。それらはその目的のためだけに作られたものです。 –