android中,对于页面滑动我们可以使用ViewPager来实现,ViewPager是v4兼容包中的一个类,使用前确保有v4兼容包。
实现效果如下,红绿蓝三个页面可以滑动切换:
实现过程:
1.在XML布局中:
使用ViewPager控件
<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="com.example.pagertest.MainActivity" >
<!-- 使用v4包中的ViewPager控件 -->
<android.support.v4.view.ViewPager
android:id="@+id/main_viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</android.support.v4.view.ViewPager>
</RelativeLayout>
2.创建三个xml布局:
把颜色分别设置曾红、绿、蓝
item_1.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="#f00"
android:orientation="vertical" >
</LinearLayout>
<?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="#0f0"
android:orientation="vertical" >
</LinearLayout>
item_3.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="#00f"
android:orientation="vertical" >
</LinearLayout>
3.创建适配器:
a.新建一个类继承PagerAdapter。
b.声明变量List<View>对象;
c.有参构造方法
d.重写四个方法
package com.example.adapter;
/**
* PagerAdapter适配器
*/
import java.util.List;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
public class MyPagerAdapter extends PagerAdapter {
//定义存放View的List动态数组
private List<View> mList;
//有参构造
public MyPagerAdapter(List<View> mList) {
super();
this.mList = mList;
}
//获取总的页数
@Override
public int getCount() {
return mList.size();
}
//判断是否相等
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
//添加
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(mList.get(position));
return mList.get(position);
}
//删除
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(mList.get(position));
}
}
4.在MainActivity中:
a.声明ViewPager对象并绑定id;
b.创建适配器对象并实例化;
c.添加View对象放到List动态数组里;
d.将适配器绑定到适配器。
package com.example.pagertest;
import java.util.ArrayList;
import java.util.List;
import com.example.adapter.MyPagerAdapter;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
public class MainActivity extends Activity {
//声明ViewPager
private ViewPager mViewPager;
//自定义适配器
private MyPagerAdapter mAdapter;
//动态数组
private List<View> mList = new ArrayList<View>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bindID();
//添加数据
addData();
//实例化适配器
mAdapter = new MyPagerAdapter(mList);
//绑定适配器
mViewPager.setAdapter(mAdapter);
}
//添加View
private void addData() {
//绑定布局
View v1 = LayoutInflater.from(MainActivity.this).inflate(R.layout.item_1, null);
View v2 = LayoutInflater.from(MainActivity.this).inflate(R.layout.item_2, null);
View v3 = LayoutInflater.from(MainActivity.this).inflate(R.layout.item_3, null);
//添加到数组
mList.add(v1);
mList.add(v2);
mList.add(v3);
//置为空
v1 = null;
v2 = null;
v3 = null;
}
//实例化
private void bindID() {
mViewPager = (ViewPager) findViewById(R.id.main_viewPager);
}
}
这样,效果就出来。
文件打包:http://download.csdn.net/detail/qq_26239671/9715316
另外!!!第三步适配器是一劳永逸的,以后做滑动效果,只需要把适配器代码复制到项目中就可以。