ViewPager网上教程很多,但不是很好懂,特别是对于新手,因此在这里整理下Viewpager相关知识
,一方面是方便新手快速入门,另一方面是方便以后回顾,话不多说,直接正题。
二,到这里简单布局完成了,下面给viewpager设置滑动页面
page2如下:
2,两个滑动页面布局简单完成,下面在Activity里进行设置,代码如下:
这是两个滑屏页面的,如果需要多个只要在pageList里多加些页面就可以了。
如果还没用过ViewPager的,建议先照着做,做完再来看解释会容易理解很多。
一,在xml添加ViewPager控件
1,建个android项目,在xml布局文件(我这里的名字是activity_main.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=".MainActivity" >
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</android.support.v4.view.ViewPager>
</RelativeLayout>
2,在Activity里找到viewpager控件,(我Activity名字为MainActivity),代码如下:
package com.example.viewpagertest;
import android.os.Bundle;
import android.app.Activity;
import android.support.v4.view.ViewPager;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找到viewpager
ViewPager viewpager = (ViewPager) findViewById(R.id.viewPager);
}
}
二,到这里简单布局完成了,下面给viewpager设置滑动页面
1,在/res/layout方件夹里新建两个布局文件,布局文件里只有一个TextView控件,我这里取名为page1,与page2,具体代码如下:
page1如下:
<?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:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:text="这是第一个页面" />
</LinearLayout>
page2如下:
<?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:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:text="这是第二个页面" />
</LinearLayout>
2,两个滑动页面布局简单完成,下面在Activity里进行设置,代码如下:
package com.example.viewpagertest;
import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找到viewpager
ViewPager viewpager = (ViewPager) findViewById(R.id.viewPager);
//获取两个页面
LayoutInflater inflater = getLayoutInflater();
View page1 = inflater.inflate(R.layout.page1, null);
View page2 = inflater.inflate(R.layout.page2, null);
//加入到集合里
ArrayList<View> pageList = new ArrayList<View>();
pageList.add(page1);
pageList.add(page2);
//建一个适配器
MyPagerAdater pagerAdater = new MyPagerAdater(pageList);
//设置到viewpager里,到此完成了。
viewpager.setAdapter(pagerAdater);
}
/**
* 自定义适配器,不懂的先复制起进项目里,后面再慢慢理解
* @author sky
*/
class MyPagerAdater extends PagerAdapter{
//view集合
ArrayList<View> pageList;
public MyPagerAdater(ArrayList<View> pageList) {
this.pageList = pageList;
}
//返回页面
public Object instantiateItem(ViewGroup container, int position) {
container.addView(pageList.get(position),position);
return pageList.get(position);
}
//这里是返回页面的个数,如当返回0时,则无页面,我们这里返回2个
public int getCount() {
return pageList.size();
}
//这里要返回true
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
}
}
到这里算是完成了,运行项目试试,看看能不能滑屏。
项目可以点击打开链接下载。
说明一下,上面activity代码主要分为两部分,
一部分是Viewpager设置
ViewPager viewpager = (ViewPager) findViewById(R.id.viewPager);
viewpager.setAdapter(pagerAdater);
另一部分是准备滑屏页面:
//获取两个面
LayoutInflater inflater = getLayoutInflater();
View page1 = inflater.inflate(R.layout.page1, null);
View page2 = inflater.inflate(R.layout.page2, null);
//加入到集合里
ArrayList<View> pageList = new ArrayList<View>();
pageList.add(page1);
pageList.add(page2);
//建一个适配器
MyPagerAdater pagerAdater = new MyPagerAdater(pageList);
这是两个滑屏页面的,如果需要多个只要在pageList里多加些页面就可以了。
PagerAdapter不懂的可以看下一篇文章。