android - ViewPager+Fragment,某个Fragment里面的一条数据发生变化,如何局部刷新这条数据
高洛峰
高洛峰 2017-04-17 17:42:05
0
4
722

ViewPager+Fragment,某个Fragment里面的一条数据发生变化,如何局部刷新这条数据

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

모든 응답(4)
巴扎黑

ViewPager의 항목이 Fragment인 경우 일반적으로 FragmentPagerAdapter이 Adapter로 사용되며, 이 클래스는 Fragment 추가 시 태그를 추가하게 됩니다. 소스의 FragmentPagerAdapter 메소드 instantiateItem()를 참고하세요.

의 코드 으아악

이 태그는 makeFragmentName()의 private 메소드를 통해 얻어지지만, 이 메소드의 viewId 매개변수는 ViewPager의 id여야 하며, itemId는 getItemId() 메소드를 사용하면 됩니다. 태그를 직접 조립하여 조각을 얻을 수 있습니다.
그게 전부입니다.

左手右手慢动作

RecyclerView를 사용한다면 이렇게 Eventbus를 사용할 수 있습니다

으아악
左手右手慢动作

저도 이 문제에 대해 한동안 고민해 보았는데, 검색해봐도 마땅한 해결 방법을 찾을 수 없었습니다. pagerfragmentadapter에서는 해당 조각을 얻기 위한 API를 제공하지 않는 것 같습니다.
인덱스에 약한 참조 목록을 만들어 프래그먼트를 초기화할 때 어댑터에 추가한 다음 어댑터의 onDestroyItem(아마도 이렇게 불렀는지 기억이 안 나네요)을 다시 작성하여 목록에서 해당 항목을 제거했습니다. 여기.
조각 인스턴스를 얻은 후 원하는 대로 작동할 수 있습니다.

Peter_Zhu
  1. Fragment가 포그라운드에 있을 때 LocalBroadcastManager / EventBus / otto / Rx를 사용하여 이벤트(메시지)를 구독할 수 있습니다.

  2. Fragment가 백그라운드로 전환되면 구독을 취소하세요. Fragment가 다시 포그라운드로 전환되면 페이지 데이터를 새로 고치고 다시 구독하세요

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