android - 조각의 ViewPage에 있는 두 조각 간의 통신 문제
PHP中文网
PHP中文网 2017-05-16 13:21:02
0
2
691

메인 프래그먼트에는 그 아래에 ViewPager가 있는 툴바가 있고, ViewPager 내부에는 프래그먼트가 있습니다. 이제 툴바의 버튼을 조작하고 ViewPager의 Fragment에 있는 데이터를 변경하고 싶습니다. 좋은 통신 방법이 있나요?

PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(2)
为情所困

질문자가 말했듯이, Toolbar와 Fragment 간의 상호 작용만 있었다면 비교적 간단했을 것입니다.

  1. Activity#setActionBar(android.widget.Toolbar) 또는 AppCompatActivity#setSupportActionBar(android.support.v7.widget.Toolbar)Activity#setActionBar(android.widget.Toolbar) 或者 AppCompatActivity#setSupportActionBar(android.support.v7.widget.Toolbar)

  2. Fragment#setHasOptionsMenu(boolean)

  3. Fragment内部的ActionBar的处理同Activity, 见下图:

p.s.分割线以下为Fragment之间的交互的相关资料.


最简单的方式是EventBus, 可选库:

  1. greenrobot/EventBus

  2. AndroidKnife/RxBus

  3. square/otto

其次就是LocalBroadcastManager, 参考资料:

  • Android Developer Reference # android.support.v4.content.LocalBroadcastManager

再次就是Fragment借助Activity来进行交互, 参考资料:

  1. Android Developer Guide # Communicating with Other Fragments

  2. Android Developer Guide # Fragment

最后就是直接通过TargetFragment来实现, 相关函数:

  1. Fragment#setTargetFragment(android.app.Fragment, int)

  2. Fragment#getTargetFragment()

  3. Fragment#getTargetRequestCode()


方法选定之后, 最后需要注意的是:

FragmentPagerAdapterFragmentStatePagerAdapter在管理Fragment时是有差别: 回收Fragment的处理是不同的. 因此, 需要考虑的是, 当Fragment

Fragment#setHasOptionsMenu(boolean)🎜 🎜🎜Fragment 내부의 ActionBar 처리는 아래 그림과 같이 Activity의 처리와 동일합니다.
🎜 🎜p.s. 구분선 아래에는 조각 간의 상호 작용에 대한 관련 정보가 있습니다.🎜 🎜가장 간단한 방법은 EventBus이며, 선택적 라이브러리는 다음과 같습니다.🎜 🎜 🎜🎜greenrobot/EventBus🎜 🎜🎜AndroidKnife/RxBus🎜 🎜🎜광장/오토🎜 🎜두 번째는 LocalBroadcastManager입니다. 참조: 🎜
    🎜🎜Android 개발자 참조 # android.support.v4.content.LocalBroadcastManager🎜
🎜다시 한 번 Fragment는 Activity를 사용하여 상호 작용합니다. 참조: 🎜 🎜 🎜🎜Android 개발자 가이드 # 다른 조각과 통신🎜 🎜🎜Android 개발자 가이드 # Fragment🎜 🎜마지막으로 TargetFragment 관련 기능을 통해 직접 구현됩니다. 🎜 🎜 🎜🎜Fragment#setTargetFragment(android.app.Fragment, int)🎜 🎜🎜Fragment#getTargetFragment()🎜 🎜🎜Fragment#getTargetRequestCode()🎜 🎜방법을 선택한 후 마지막으로 주의해야 할 사항은 다음과 같습니다.🎜
🎜FragmentPagerAdapterFragmentStatePagerAdapterFragment를 관리할 때 다릅니다. 따라서 Fragment 재활용 처리가 다릅니다. , 고려해야 할 것은 Fragment가 재활용되어 화면에 다시 나타날 때 질문에 언급된 Fragments 간의 상호 작용 관계를 앱이 어떻게 처리(저장 및 복원)해야 하는지입니다.
世界只因有你

두 조각 간에 데이터를 교환하려면 EventBus를 사용할 수 있습니다

단지 툴바를 조작하여 조각을 전환하는 경우 조각을 로드하고 데이터를 직접 전달하세요

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿