系列文章:

  1. ViewPager 详解(一)——基本入门
  2. ViewPager 详解(二)——四大函数
  3. ViewPager 详解(三)——PagerTabStrip与PagerTitleStrip添加标题栏
  4. ViewPager 详解(四)——自主实现滑动指示条X
  5. 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