ViewPager+TabLayout+Fragment刷新Fragment中的数据
生活随笔
收集整理的這篇文章主要介紹了
ViewPager+TabLayout+Fragment刷新Fragment中的数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.ViewPager與TabLayout的初始化:
1 private void initData() { 2 mTabFragmentAdapter = new TabFragmentFirstAdapter(getSupportFragmentManager(), mDeptType); 3 mVp.setAdapter(mTabFragmentAdapter); 4 mVp.addOnPageChangeListener( 5 new TabLayout.TabLayoutOnPageChangeListener(mTabLayout)); 6 mVp.setOffscreenPageLimit(3); 7 mTabLayout.setupWithViewPager(mVp); 8 }?
2.刷新主要還是靠FragmentPagerAdapter的notifyDataSetChanged()
1 private void reflashData(int type, List<WorkOrderBean.RowsBean> list) { 2 mTabFragmentAdapter.setDataAndType(type, list); 3 mTabFragmentAdapter.notifyDataSetChanged(); 4 }3.當notify時,FragmentPagerAdapter中主要會回調getItemPosition(Object object)方法,在這里判斷是哪個Fragment
1 @Override 2 public int getItemPosition(Object object) { 3 if (object instanceof WorkSubFirstFragment) { 4 if (list0.size()==0)return super.getItemPosition(object); 5 ((WorkSubFirstFragment) object).updateView(list0); 6 } else if (object instanceof WorkSubFirstFragment1) { 7 if (list1.size()==0)return super.getItemPosition(object); 8 ((WorkSubFirstFragment1) object).updateView(list1); 9 } else if (object instanceof WorkSubFirstFragment2) { 10 if (list2.size()==0)return super.getItemPosition(object); 11 ((WorkSubFirstFragment2) object).updateView(list2); 12 } 13 return super.getItemPosition(object); 14 }?
4.定義Fragment中的更新視圖方法:
1 public void updateView(List<WorkOrderBean.RowsBean> rows) { 2 reflashSelfData(rows); 3 } 小貼士: 添加數據時不要直接賦值,采用addList()方法最好,并且之前最好清空數據集 1 list0.clear(); 2 list0.addAll(list);?
?
轉載于:https://www.cnblogs.com/jeffery336699/p/9288627.html
總結
以上是生活随笔為你收集整理的ViewPager+TabLayout+Fragment刷新Fragment中的数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dap条款什么意思
- 下一篇: 汽车前挡玻璃当“手机屏” 苹果新专利被媒