cathome 猫家 开发日记-tablayout+viewpager+fragment
概述
1.tablayout。纯粹就是一个滑动菜单,只是多加一个事件,触发viewpager的滑动。
2.viewpage,是主角,一般是设定 adapter,在 adapter中,决定如何显示view,以及显示多少个view.
这里系统已经封装了一个adapter叫 fragmentadapter.转为针对view里面放fragment 的。并且主要方法为 public Fragment getItem(int i)
所以建立多个fragment .并传递给adapter. 就可以。主体上结构其实很简单。
1.初始化2个空间
FindControls(view_content); SetupTablayout(); SetupViewPager(); 2.简单到死。建立 list<fragment> 传递给 adapter,这个派生的adapter。其实很简单。 private void SetupViewPager() { List<Fragment> fragments=new ArrayList<>(); fragments.add(new life()); fragments.add(new birth()); fragments.add(new illness()); fragments.add(new other()); LSUIViewPagerFragmentAdapter adapter_fragment=new LSUIViewPagerFragmentAdapter(getSupportFragmentManager(),fragments); mPages.setAdapter(adapter_fragment); }
派生的adapter
package com.utils.widgets; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import java.util.ArrayList; import java.util.List; public class LSUIViewPagerFragmentAdapter extends FragmentPagerAdapter { private List<Fragment> mFragments; public LSUIViewPagerFragmentAdapter(FragmentManager fm, List<Fragment> fragments) { super(fm); mFragments=fragments; if(mFragments==null) { mFragments=new ArrayList<>(); } } @Override public Fragment getItem(int i) { return mFragments.get(i); } @Override public int getCount() { return mFragments.size(); } }