第十八枪(ViewPager组件详解)

对于ViewPager组件我们知道:

1)ViewPager类直接继承了ViewGroup类,,所有它是一个容器类,可以在其中添加其他的view类。

2)ViewPager类需要一个PagerAdapter适配器类给它提供数据。

3)ViewPager经常和Fragment一起使用,并且提供了专门的FragmentPagerAdapter和FragmentStatePagerAdapter类供Fragment中的ViewPager使用。

下面我们通过实例看一下ViewPager的使用。

一 实现ViewPager(数据源为List<View>)

1.先在main.xml文件中添加一个ViewPager:

<LinearLayout xmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent" ><android.support.v4.view.ViewPagerandroid:id="@+id/pager"android:layout_width="wrap_content"android:layout_height="wrap_content"></android.support.v4.view.ViewPager></LinearLayout>2.创建三个View:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/txt1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:textSize="25dp"android:text="第一页" ></TextView></LinearLayout><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/txt2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="第二页" ></TextView></LinearLayout><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/txt3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="第三页" > </TextView> </LinearLayout>3.创建一个ViewPager适配器类:

package com.yayun.viewpagerdemo;import java.util.ArrayList;import java.util.List;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;public class ViewPagerAdapter extends PagerAdapter {private List<View> lViews=new ArrayList<View>();public ViewPagerAdapter(List<View> lViews){this.lViews=lViews;}@Overridepublic int getCount() {return lViews.size();}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0==arg1;}@Overridepublic Object instantiateItem(ViewGroup container, int position) {container.addView(lViews.get(position));return lViews.get(position);}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView(lViews.get(position));}}4.MainActivity.java:

package com.yayun.viewpagerdemo;import java.util.ArrayList;import java.util.List;import android.support.v7.app.ActionBarActivity;import android.support.v7.app.ActionBar;import android.support.v4.app.Fragment;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.os.Build;public class MainActivity extends ActionBarActivity {private ViewPager viewPager;private List<View> listViews=null;ViewPagerAdapter pagerAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);viewPager=(ViewPager) findViewById(R.id.pager);listViews=new ArrayList<View>();/** * 为Adapter创建数据源 */View view1=View.inflate(this, R.layout.view1, null);View view2=View.inflate(this, R.layout.view2, null);View view3=View.inflate(this, R.layout.view3, null);listViews.add(view1);listViews.add(view2);listViews.add(view3);pagerAdapter=new ViewPagerAdapter(listViews) ;viewPager.setAdapter(pagerAdapter);}}5.运行实例:

可以实现翻页效果。

二 添加标题

1.我们需要更改main.xml文件:

最美不过偷瞄你是你忽然转头,看见你的微笑

第十八枪(ViewPager组件详解)

相关文章:

你感兴趣的文章:

标签云: