android Viewpager+TabLayout+Fragment
阿新 • • 發佈:2018-12-28
Viewpager+TabLayout+Fragment
TabLayout滑動的時候viewpager換頁
Viewpager換頁的時候TabLayout滑動
Viewpager的介面卡裝的是Fragment
1.Viewpager弄個介面卡extends FragmentPagerAdapter
介面卡裡面成員變數:一個title字串集合,一個fragment集合
public class CarTypeViewAdapter extends FragmentPagerAdapter { private ArrayList<String> titleList; private ArrayList<Fragment> fragmentList; public CarTypeViewAdapter(FragmentManager fm, ArrayList<String> titleList, ArrayList<Fragment> fragmentList) { super(fm); this.titleList = titleList; this.fragmentList = fragmentList; } @Override public Fragment getItem(int i) { return fragmentList.get(i); } @Override public int getCount() { return fragmentList.size(); } @Nullable @Override public CharSequence getPageTitle(int position) { return titleList.get(position); } }
2.介面卡載入資料
private CarTypeViewAdapter carTypeViewAdapter;
private ArrayList<String> carStringList =new ArrayList<>();
private ArrayList<Fragment> carTypeFragmentList = new ArrayList<Fragment>();
carStringList.add("小型麵包車"); carStringList.add("中型麵包車"); carStringList.add("小型貨車"); carStringList.add("中型貨車"); CarTypeFragment carTypeFragment1=CarTypeFragment.newInstance(1); CarTypeFragment carTypeFragment2=CarTypeFragment.newInstance(2); CarTypeFragment carTypeFragment3=CarTypeFragment.newInstance(3); CarTypeFragment carTypeFragment4=CarTypeFragment.newInstance(4); carTypeFragmentList.add(carTypeFragment1); carTypeFragmentList.add(carTypeFragment2); carTypeFragmentList.add(carTypeFragment3); carTypeFragmentList.add(carTypeFragment4); carTypeViewAdapter=new CarTypeViewAdapter(getChildFragmentManager(), carStringList,carTypeFragmentList);
3.Viewpager設定該介面卡,TabLayout與Viewpager建立關係
private ViewPager viewPager; private TabLayout tabLayout1; viewPager= getView().findViewById(R.id.vp_cartype); viewPager.setAdapter(carTypeViewAdapter); tabLayout1=getView().findViewById(R.id.huoyun_tablayout); tabLayout1.setupWithViewPager(viewPager);