メイン フラグメントには、その下に ViewPager を備えたツールバーがあり、ViewPager 内にフラグメントがあります。そこでツールバーのボタンを操作してViewPager内のFragment内のデータを変更したいのですが何か良い通信方法はありますか?
认证高级PHP讲师
質問者が言ったように、ツールバーとフラグメントの間の相互作用だけであれば、比較的簡単です:
Activity#setActionBar(android.widget.Toolbar) 或者 AppCompatActivity#setSupportActionBar(android.support.v7.widget.Toolbar)
Activity#setActionBar(android.widget.Toolbar)
AppCompatActivity#setSupportActionBar(android.support.v7.widget.Toolbar)
Fragment#setHasOptionsMenu(boolean)
Fragment内部の ActionBar はアクティビティと同じように処理されます。以下の図を参照してください:
Fragment
追記: 分割線の下には、フラグメント間の相互作用に関する関連情報が表示されます。
方法を選択したら、最後に注意する必要があるのは次のとおりです:
FragmentPagerAdapter と FragmentStatePagerAdapter は の管理に違いがあります。つまり、FragmentPagerAdapter和FragmentStatePagerAdapter在管理Fragment时是有差别: 回收Fragment的处理是不同的. 因此, 需要考虑的是, 当Fragment をリサイクルする処理が異なります。したがって、考慮する必要があるのは、 がいつリサイクルされ、再び表示されるかです。画面では、質問に記載されているフラグメント間のインタラクティブな関係をアプリがどのように処理 (保存および復元) する必要がありますか?
FragmentPagerAdapter
FragmentStatePagerAdapter
の管理に違いがあります。つまり、FragmentPagerAdapter和FragmentStatePagerAdapter在管理Fragment时是有差别: 回收Fragment的处理是不同的. 因此, 需要考虑的是, 当Fragment をリサイクルする処理が異なります。したがって、考慮する必要があるのは、
2つのFragment間でデータを交換したい場合は、EventBusを使用できます
ツールバーを操作してフラグメントを切り替えるだけの場合は、フラグメントをロードしてデータを直接渡します
質問者が言ったように、ツールバーとフラグメントの間の相互作用だけであれば、比較的簡単です:
Activity#setActionBar(android.widget.Toolbar)
或者AppCompatActivity#setSupportActionBar(android.support.v7.widget.Toolbar)
Fragment#setHasOptionsMenu(boolean)
Fragment
内部の ActionBar はアクティビティと同じように処理されます。以下の図を参照してください:追記: 分割線の下には、フラグメント間の相互作用に関する関連情報が表示されます。
最も簡単な方法は、EventBus のオプションのライブラリです:
方法を選択したら、最後に注意する必要があるのは次のとおりです:
🎜2つのFragment間でデータを交換したい場合は、EventBusを使用できます
ツールバーを操作してフラグメントを切り替えるだけの場合は、フラグメントをロードしてデータを直接渡します