标签:FragmentManger viewPager void Fragment fragment Override Android public dataArra
Fragment受FragmentManger控制。
通过FragmentManger获取FragmentTransaction。ft.replace(containerView,fragment)替换fragment
使用
fragmentTransaction = supportFragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.main_page_container,baseFragment); fragmentTransaction.commit();
而且fragment内嵌套fragment需要getChildFragmentManger();
public class HomeFragment extends BaseFragment { private TabLayout tabLayout; private ViewPager viewPager; private HomeViewPagerAdapter homeViewPagerAdapter; private HomePresenter homePresenter; @Override protected int getRootViewResId() { return R.layout.fragment_home; } @Override public void initView(View view) { tabLayout = view.findViewById(R.id.tabLayout); viewPager = view.findViewById(R.id.viewPager); homeViewPagerAdapter = new HomeViewPagerAdapter(getChildFragmentManager()); viewPager.setAdapter(homeViewPagerAdapter); tabLayout.setupWithViewPager(viewPager); } @Override public void initData() { } @Override public void initEvent() { } @Override public void initPresenter() { homePresenter = new HomePresenter(); homePresenter.setHomeFragment(HomeFragment.this); } @Override public void loadData() { homePresenter.getCategories(); } public void loadCategories(Categories categories){ homeViewPagerAdapter.setCategories(categories); } }
HomeViewPagerAdapter
public class HomeViewPagerAdapter extends FragmentPagerAdapter { private ArrayList<Categories.Data> dataArray = new ArrayList<>(); public HomeViewPagerAdapter(@NonNull FragmentManager fm) { super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT); } @Nullable @Override public CharSequence getPageTitle(int position) { String title = dataArray.get(position).getTitle(); return title; } @NonNull @Override public Fragment getItem(int position) { HomePagerFragment homePagerFragment = new HomePagerFragment(); return homePagerFragment; } @Override public int getCount() { return dataArray.size(); } public void setCategories(Categories categories){ dataArray.clear(); List<Categories.Data> data = categories.getData(); dataArray.addAll(data); notifyDataSetChanged(); } }
标签:FragmentManger,viewPager,void,Fragment,fragment,Override,Android,public,dataArra 来源: https://www.cnblogs.com/remix777/p/16209243.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。