Android ViewPager一分钟入门教程-ViewPager实例

来源:互联网 发布:全球最贵的十大域名 编辑:程序博客网 时间:2024/05/22 06:23
ViewPager网上教程很多,但不是很好懂,特别是对于新手,因此在这里整理下Viewpager相关知识,一方面是方便新手快速入门,另一方面是方便以后回顾,话不多说,直接正题。

如果还没用过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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//找到viewpagerViewPager 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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//找到viewpagerViewPager 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@Overridepublic 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不懂的可以看下一篇文章。





0 0
原创粉丝点击