只需要在Activity中需要集成多个界面的地方放置一个ViewPager
例:中间是ViewPager,下面是一个radioGroup(可忽略)
把该类看作Avtivity即可
public class AAAFragment extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //获得当前fragment对应的layout View view = inflater.inflate(R.layout.activity_aaa, container, false); return view; } }
public class MyFragmentPagerAdapter extends FragmentPagerAdapter { //继承FragmentPagerAdapter List<Fragment> fragmentList; //Fragment集合 public MyFragmentPagerAdapter2(FragmentManager fm, List<Fragment> fragmentList) { super(fm); this.fragmentList=fragmentList; //在new该适配器的时候传入Fragment集合 } @Override public Fragment getItem(int position) { //通过索引获取单个Fragment return fragmentList.get(position); } @Override public int getCount() { //获得Fragment集合Size return fragmentList.size(); } }
public class MainActivity extends AppCompatActivity { List<Fragment> fragmentList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); initFragmentList(); //初始化Fragment集合 ViewPager vp = (ViewPager) findViewById(R.id.viewPager); //获得ViewPager容器 //把Fragment集合放到适配器中 MyFragmentAdapter adapter = new MyFragmentAdapter(getSupportFragmentManager(), fragmentList); //给ViewPager设置适配器 vp.setAdapter(adapter); } protected void initFragmentList(){ //初始化Fragment集合 fragmentList = new ArrayList<Fragment>(); fragmentList.add(new AAAFragment()); fragmentList.add(new BBBFragment()); fragmentList.add(new CCCFragment()); } }
1.ViewPager可以使用户左右滑动切换当前界面
2.ViewPager直接继承了ViewGroup类,所以他是容器类
1.前者会将生成的每一个Fragment保存在内存中,适用于Fragment较少的情况
2.后者是用一个生成一个,适用于Fragment较多的情况
原文:https://www.cnblogs.com/zddsl/p/14709988.html