1.首先准备布局
<android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" />
2.准备数据源
LayoutInflater inflater=getLayoutInflater(); View view1 = inflater.inflate(R.layout.layout1, null); ArrayList<View>() viewList = new ArrayList<View>(); viewList.add(view1); MyAdapter myAdapter=new MyAdapter(this,viewList); viewPager.setAdapter(myAdapter);
3.自定义MyAdapter继承PagerAdapter,重写四个方法
public class MyAdapter extends PagerAdapter { public int getCount() { return viewList .size();} public boolean isViewFromObject(View view, Object object) { return view==object; }
fragment的Java后台
public class PagerFragment extends Fragment { String mContent; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mContent = (String) getArguments().get("content"); View view = inflater.inflate(R.layout.fragment_pager, container, false) ; TextView textView = (TextView) view.findViewById(R.id.tv); textView.setText(mContent); return view; } }
final List<PagerFragment> list = new ArrayList<>(); for (int i = 0; i < 5; i++) { PagerFragment fragment = new PagerFragment(); Bundle bundle = new Bundle(); bundle.putString("content","第"+i+"个Fragment"); fragment.setArguments(bundle); list.add(fragment); } ViewPager vp = (ViewPager) findViewById(R.id.vp); vp.setAdapter(new FragmentStatePagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); } });
xml页面布局:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.strivestay.viewpagerdemo.PagerFragment"> <TextView android:id="@+id/tv" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:textSize="18sp" android:text="@string/hello_blank_fragment"/> </FrameLayout>