使用示例1:最简单用法
运行效果图:
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="lbstest.example.com.viewpager1.MainActivity">
<android.support.v4.view.ViewPager
android:id="@+id/vpager_one"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
view_one.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFBA55"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第一个Page"
android:textColor="#000000"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
MyPagerAdaper:
public class MyPagerAdapter extends PagerAdapter{
private List<View> aList;
/*public MyPagerAdapter() {
}*/
public MyPagerAdapter(List<View> aList) {
super();
this.aList =aList ;
}
@Override
public int getCount() {
return aList.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
((ViewPager)container).addView(aList.get(position));
return aList.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager)container).removeView(aList.get(position));
}
}
MainActivity:
public class MainActivity extends FragmentActivity{
private ViewPager vpager_one;
private List<View> aList= new ArrayList<>();
private View view1,view2,view3;
private MyPagerAdapter mAdapter;
public static final String TAG="viewPager1";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
public void initView(){
vpager_one=(ViewPager)findViewById(R.id.vpager_one);
view1=View.inflate(this,R.layout.view_one,null);
view2=View.inflate(this,R.layout.view_two,null);
view3=View.inflate(this,R.layout.view_three,null);
aList.add(view1);
aList.add(view2);
aList.add(view3);
vpager_one.setAdapter(new MyPagerAdapter(aList));
vpager_one.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
Log.d(TAG,"position"+position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
/*vpager_one.setAdapter(mAdapter);*/
}
}
以上是把适配器作为一个类,我们也可以写在类中:
public class MainActivity extends FragmentActivity{
private ViewPager vpager_one;
private List<View> aList= new ArrayList<>();
private View view1,view2,view3;
private MyPagerAdapter mAdapter;
public static final String TAG="viewPager1";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
public void initView(){
vpager_one=(ViewPager)findViewById(R.id.vpager_one);
view1=View.inflate(this,R.layout.view_one,null);
view2=View.inflate(this,R.layout.view_two,null);
view3=View.inflate(this,R.layout.view_three,null);
aList.add(view1);
aList.add(view2);
aList.add(view3);
vpager_one.setAdapter(new MyPagerAdapter());
vpager_one.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
Log.d(TAG,"position"+position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
/*vpager_one.setAdapter(mAdapter);*/
}
public class MyPagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return aList.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
((ViewPager)container).addView(aList.get(position));
return aList.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager)container).removeView(aList.get(position));
}
}
}
记得vpager_one.setAdapter(new MyPagerAdapter());要变一下。