
1.创建步骤
1.1.在布局文件中创建布局
<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=".MainActivity" >
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.PagerTabStrip
android:id="@+id/pts"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_gravity="top" >
</android.support.v4.view.PagerTabStrip>
</android.support.v4.view.ViewPager>
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="第1页"
android:textSize="24sp" />
</RelativeLayout>
public class GuideAdapter extends PagerAdapter
{
private List<View> views;
private List<String> strs;
public GuideAdapter(List<View> views, List<String> strs)
{
this.views = views;
this.strs = strs;
}
@Override
public Object instantiateItem(ViewGroup container, int position)
{
container.addView(views.get(position));
return position;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object)
{
container.removeView(views.get(position));
}
@Override
public int getCount()
{
return views.size();
}
@Override
public boolean isViewFromObject(View view, Object object)
{
return (view == views.get((Integer)object));
}
@Override
public CharSequence getPageTitle(int position)
{
return strs.get(position);
}
}
@Override
public void onPageScrollStateChanged(int arg0)
{
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2)
{
}
@Override
public void onPageSelected(int position)
{
textView.setText("第" + (position+1) + "页");
}
2.包含的方法
2.1.Object instantiateItem(ViewGroup container, int position)
这个函数的实现的功能是创建指定位置的页面视图
2.2.destroyItem(ViewGroup container, int position, Object object)
该方法实现的功能是移除一个给定位置的页面。
2.3.int getCount()返回当前有效视图的个数。
2.4.boolean isViewFromObject(View view, Object object)
该函数用来判断instantiateItem(ViewGroup, int)函数所返回来的Key与一个页面视图是否是代表的同一个视图
2.5.CharSequence getPageTitle(int position)设置标题;
3.使用心得
3.1.心得1
Object instantiateItem(ViewGroup container, int position)方法返回的object就是“key”
这个可以自定义,只要能唯一判断出view就行;
boolean isViewFromObject(View view, Object object)的判断也要跟着不同的key而做相应的改变;
3.2.心得2
1.可以使用viewpager做引导页;
2.也可以使用viewpager+fragment做滑动的tab布局实现;