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