系列文章:
- ViewPager 详解(一)——基本入门
- ViewPager 详解(二)——四大函数
- ViewPager 详解(三)——PagerTabStrip与PagerTitleStrip添加标题栏
- ViewPager 详解(四)——自主实现滑动指示条X
- ViewPager 详解(五)——使用Fragment实现ViewPager滑动
前几篇文章讲解了ViewPager的普通实现方法,但Android官方最推荐的一种实现方法却是使用fragment,下面我们使用fragment来重新实现一下第一篇《ViewPager 详解(一)—基本入门》所实现的效果
实现ViewPager是要有适配器的,我们前面用的适配器是PagerAdapter,而对于fragment,它所使用的适配器是:FragmentPagerAdapter
创建一个FragAdapter
public class FragAdapter extends FragmentPagerAdapter {
private List<Fragment> mFragments;
public FragAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
mFragments = fragments;
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
}
创建3个Fragment
Fragment1
public class Fragment1 extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.layout1,container,false);
return view;
}
}
Fragment2,Fragment3和以上代码类似,只是把布局换成R.layout.1/2
MainActivity
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import com.example.xx.myapplication2.R;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends FragmentActivity {
private ViewPager viewPager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = findViewById(R.id.viewpager);
List<Fragment> fragments = new ArrayList<>();
fragments.add(new Fragment1());
fragments.add(new Fragment2());
fragments.add(new Fragment3());
FragAdapter fragAdapter = new FragAdapter(getSupportFragmentManager(),fragments);
viewPager.setAdapter(fragAdapter);
}
}
这里值得注意的有:
1、MainActivity继承自FragmentActivity
2、涉及到的Fragment导包应该导入v4包,而不是app