ViewPager的简单用法

1.首先要在layout写一个xml文件,写关于ViewPager的一个标签的xml文件

activity_main.xml

<android.support.v4.view.ViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/viewpager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    />

2.然后写你要滑动的view,每个view文件

view1.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:orientation="vertical"
    android:background="@drawable/tu1"

     >
     <!-- android:gravity="center_horizontal" -->
    <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="view1"
         android:textSize="28sp"
         android:id="@+id/textview"
         android:layout_gravity="center_horizontal"
        />

</LinearLayout>

view2.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:orientation="vertical"
    android:background="@drawable/tu2"

     >
     <!-- android:gravity="center_horizontal" -->
    <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="view2"
         android:textSize="28sp"
         android:id="@+id/textview2"
         android:layout_gravity="center_horizontal"
        />

</LinearLayout>

view3.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:orientation="vertical"
    android:background="@drawable/tu3"

     >
     <!-- android:gravity="center_horizontal" -->
    <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="view3"
         android:textSize="28sp"
         android:id="@+id/textview3"
         android:layout_gravity="center_horizontal"
        />

</LinearLayout>

view4.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:orientation="vertical"
    android:background="@drawable/tu4"

     >
     <!-- android:gravity="center_horizontal" -->
    <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="view4"
         android:textSize="28sp"
         android:id="@+id/textview4"
         android:layout_gravity="center_horizontal"
        />

</LinearLayout>

3、然后要把四个view (view1到4)用代码加载到ViewPager里面去,前提是要生成一个PagerAdapter,

通过这个PagerAdapter把数据加载到ViewPager里面去

MainActivity.java

public class MainActivity extends Activity {
    ViewPager viewPager;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		viewPager=(ViewPager) findViewById(R.id.viewpager);

		LayoutInflater layoutInflater=getLayoutInflater().from(this);
		View view1=layoutInflater.inflate(R.layout.view1, null);
		View view2=layoutInflater.inflate(R.layout.view2, null);
		View view3=layoutInflater.inflate(R.layout.view3, null);
		View view4=layoutInflater.inflate(R.layout.view4, null);

		List<View> list=new ArrayList<View>();

		list.add(view1);
		list.add(view2);
		list.add(view3);
		list.add(view4);
		viewPager.setAdapter(new MyViewPagerAdapter(list));
		viewPager.setCurrentItem(0);

	}

}

MyViewPagerAdapter.java

public class MyViewPagerAdapter extends PagerAdapter{
	List<View> list;
	public MyViewPagerAdapter (List<View> list){
		this.list=list;
	}

	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return list.size();
	}

	@Override
	public boolean isViewFromObject(View arg0, Object arg1) {
		// TODO Auto-generated method stub
		return arg0 == arg1;
	}

	@Override
	public void destroyItem(ViewGroup container, int position, Object object) {
		// TODO Auto-generated method stub
		container.removeView(list.get(position));
	}

	@Override
	public Object instantiateItem(ViewGroup container, int position) {
		// TODO Auto-generated method stub
		container.addView(list.get(position),0);
		return list.get(position);
	}

}
时间: 2024-11-06 07:37:43

ViewPager的简单用法的相关文章

ViewPager的简单用法+适配器+监听器的介绍

之前的actionbar+fragment文章中写过viewpager的简单用法,但因为是融合的文章,所以今天把viewpager提取出来写了.方便查询浏览~ 思路: 1.在布局文件中设置viewpager控件 2.在acitvity中找到它 3.自定义一个适配器,这个适配器需要一个list<View>来构造 4.定义一个list<View>来放入几个view,并用其来初始化适配器 5.给viewPager来设置适配器和监听器 实现: 1.布局文件,这里放一个指示文字.实际中可以用

iOS block-base 动画简单用法+关键帧动画设置线性变化速度的问题

本文转载至 http://www.tuicool.com/articles/aANBF3m 时间 2014-12-07 20:13:37  segmentfault-博客原文  http://segmentfault.com/blog/alan/1190000002411296 iOS的各种动画相漂亮,相信这是吸引很多人买iPhone的原因之一.不仅如此,这还是吸引我做iOS开发的一大原因,因为在iOS上给界面实现一些像样的动画实在是太轻松了! 这里就介绍一下iOS的block-based an

Android WIFI 简单用法

随着Wifi的普及,在开发App的时候对wifi的考虑越来越多了.例如程序的升级在wifi下可以省很多流量,在通信软件中的视频通话.可以实现高画质的传输等等,Android提供了WifiManager类来帮助开发者们管理Wifi.下面就简单来说一下WifiManager的简单用法把. 权限: 为了使用WfiManager 我们需要在Androidmanifest.xml 加入权限: //本例中使用了前两个.具体请按照需要添加权限. <uses-permission android:name=&quo

Android中资源文件中的字符串数组string-array简单用法

在Android中,用string-array是一种简单的提取XML资源文件数据的方法. 例子如下: 把相应的数据放到values文件夹的strings.xml文件里,或是其他自定义的xml中都可以,以下操作方法相同. <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="sports"> <item>足球<

expect简单用法

1 #!/usr/expect/bin/expect -f 2 3 4 set loginuser [lrange $argv 0 0] 5 set loginpass [lrange $argv 1 1] 6 set ipaddr [lrange $argv 2 2] 7 set port [lrange $argv 3 3] 8 set timeout [lrange $argv 4 4] 9 set from [lrange $argv 5 5] 10 set to [lrange $ar

Tcpdump 的简单用法

Tcpdump 的简单用法 tcpdump是Linux命令行下使用最广泛的网络分析工具,运行的时候会将网卡运行在混杂模式下,需要root权限才能执行 下面是几个比较常见的参数: -w  保持到指定的文件 -i  指定监听的网卡,缺省显示第一块网卡 -nn 以IP方式显示host -v  显示详细信息 -s  指定数据包大小,缺省是65535 -t  不显示时间 ,缺省是显示时间戳 -c  获取数据包数量,缺省不限制,需要用Ctrl+c来终止 下面是关于命令关键字的说明 1.主要包括host,ne

C++ double转string类型以及MFC控件简单用法

这两天项目需要,测试c++库里面内容.生成jar再给Android调用.我没有学过C++,现在开始记录C++简单用法.测试时候一般都是使用mfc程序来测试,要输入值,显示结果吗.我用的编译环境vs2008. 一.double 转string #include <string> CString strResultx; strResultx.Format(_T("x:%.4f\n"), 89.7887878); 转换结果还是放在strResultx 2.两个字符串相连 CStr

vB SendMessage API 简单用法

vB SendMessage API 简单用法 1. 在Windows编程中,向文本框控件.列表控件.按钮控件等是我们最常接触的控件了.但是在VB中这些控件有时无法实现我们的需要.在这时,我们只要简单的利用Windows API函数就可以扩充这些控件的功能了.顾名思义,SendMessage函数就是向窗口(这里的窗口指的是向按钮.列表框.编辑框等具有hWnd属性的控件)发送消息的函数,该函数的定义如下:Declare Function SendMessage Lib "user32"

java中Object.equals()简单用法

/* equals()方法默认的比较两个对象的引用! */ class Child { int num; public Child(int x){ num = x; } //人文的抛出运行时异常的好处是:可以自定义错误信息! /*public boolean equals(Object o) throws ClassCastException{ if(!(o instanceof Child)) throw new ClassCastException("中文提示:类型错误"); Ch