📅  最后修改于: 2023-12-03 15:05:49.959000             🧑  作者: Mango
Viewpager是Android中非常实用的组件,它可以将多个Fragment或者View按照一定的顺序展示出来。在使用Viewpager时,我们需要一个适配器(Adapter)来管理我们的数据。本文将介绍Viewpager适配器数据绑定的方法。
适配器是用来显示数据的一个重要组件,它提供了一种将数据与View展示在一起的方式。在Viewpager中,适配器用来管理Fragment或View的显示和隐藏。
在使用Viewpager之前,我们需要先定义一个适配器。适配器需要继承FragmentPagerAdapter或FragmentStatePagerAdapter。
FragmentPagerAdapter是一个适合固定小型数据集的适配器。它将Fragment保存在内存中,不会被销毁。如果数据集比较大,建议使用FragmentStatePagerAdapter。
public class MyPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList;
private List<String> titleList;
public MyPagerAdapter(FragmentManager fragmentManager, List<Fragment> fragmentList, List<String> titleList) {
super(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
this.fragmentList = fragmentList;
this.titleList = titleList;
}
@NonNull
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return titleList.get(position);
}
}
FragmentStatePagerAdapter是一个适合数据集较大的适配器。它会销毁不再需要的Fragment,只保留需要显示的Fragment。在ViewPager中,只有当前Fragment和相邻两个Fragment处于活动状态,其他Fragment将被销毁。
public class MyPagerAdapter extends FragmentStatePagerAdapter {
private List<Fragment> fragmentList;
private List<String> titleList;
public MyPagerAdapter(FragmentManager fragmentManager, List<Fragment> fragmentList, List<String> titleList) {
super(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
this.fragmentList = fragmentList;
this.titleList = titleList;
}
@NonNull
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return titleList.get(position);
}
}
在定义好适配器之后,我们需要将数据绑定到适配器中。在本例中,我们将绑定Fragment和标题。
List<Fragment> fragmentList = new ArrayList<>();
fragmentList.add(new MyFragment1());
fragmentList.add(new MyFragment2());
fragmentList.add(new MyFragment3());
List<String> titleList = new ArrayList<>();
titleList.add("Fragment1");
titleList.add("Fragment2");
titleList.add("Fragment3");
MyPagerAdapter myPagerAdapter = new MyPagerAdapter(getSupportFragmentManager(), fragmentList, titleList);
viewPager.setAdapter(myPagerAdapter);
在上面的示例中,我们定义了三个Fragment和三个标题,然后将它们绑定到适配器中,并将适配器设置到ViewPager中。
Viewpager适配器数据绑定是Android开发中的一个基本概念。在学习了本文之后,你可以开始编写自己的Viewpager适配器,并将数据绑定到适配器中。同时,你还可以根据自己的需要自定义适配器,实现更多功能。