想使用ViewPager开发,必须将android-support扩展支持包加入到项目中,里面包含了这个组件。
该组件自动实现了手势操作,同时,还实现了切换界面的动画操作。
但需要将所有的要显示到这个ViewPager中的界面全部进行初始化,一起加入到ViewPager中。
先准备好多个布局文件,表示ViewPager中的每个标签页(Pager)
在主界面的布局文件中,加入ViewPager对象。
<LinearLayout 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"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</android.support.v4.view.ViewPager>
</LinearLayout>
通过程序加入组件,但这里需要自定义一个Adapter,继承PagerAdapter
public class MyPageAdapter extends PagerAdapter {
// 所有的页面集合
private List<View> allViews;
public MyPageAdapter(List<View> allViews) {
this.allViews = allViews;
}
@Override
public int getCount() {
return allViews.size();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// 销毁某个页面组件, container就是ViewPager
container.removeViewAt(position);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// 新添加一个组件到 ViewPager中
container.addView(allViews.get(position));
return allViews.get(position);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
}
在MainActivity中取得组件,并将各个界面初始化,放到List<View>里面,同时建立Adapter,并设置到ViewPager中显示。
public class MyPageAdapter extends PagerAdapter {
// 所有的页面集合
private List<View> allViews;
public MyPageAdapter(List<View> allViews) {
this.allViews = allViews;
}
@Override
public int getCount() {
return allViews.size();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// 销毁某个页面组件, container就是ViewPager
container.removeViewAt(position);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// 新添加一个组件到 ViewPager中
container.addView(allViews.get(position));
return allViews.get(position);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
}