ViewPager的使用方法(实现左右滑动切换页面)

首先加入ViewPager

<android.support.v4.view.ViewPager

android:id = "@+id/pager"

android:layout_width = "wrap_content"

android:layout_height = "wrap_content"

android:layout_gravity = "center"/>

加载显示的页卡

将layout布局装换为View对象

(1) LayoutInflater if = getLayoutInflater().from(this);

if.inflater(resource,root);

(2) View.inflater(context,resource,root);

配置Adapter适配器

(1) PagerAdapter 数据源: List<View>

(2) FragmentPagerAdapter 数据源:List<Fragment>

(3) FragmentStatePagerAdapter 数据源:List<Fragment>

下面是代码示例:

1.代码组成:一个含有ViewPager的主布局,四个view布局展示四个页面,一个主类,,一个适配器

主布局代码如下:

<LinearLayout xmlns:android="" xmlns:tools="" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center">

</android.support.v4.view.ViewPager>> </LinearLayout>

2.四个展示页面View,大家可以自行编写,只要能区分就行,可以设置一些不同的文字,或者不同的颜色

3.主类代码:

public class MainActivity extends Activity {private ViewPager pager;private List<View> pagerList;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);pagerList = new ArrayList<View>();/** 通过ViewPager添加布局* */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);View view4 = View.inflate(this, R.layout.view4, null);pagerList.add(view1);pagerList.add(view2);pagerList.add(view3);pagerList.add(view4);/** 实例化pager控件* */pager = (ViewPager) findViewById(R.id.pager);MyPagerAdapter adapter = new MyPagerAdapter(pagerList);pager.setAdapter(adapter);}}

4.适配器代码:

public class MyPagerAdapter extends PagerAdapter{private List<View> pagerList;//构造函数public MyPagerAdapter(List<View> pagerList) {// TODO Auto-generated method stubthis.pagerList = pagerList;}//返回页面的数量@Overridepublic int getCount() {// TODO Auto-generated method stubreturn pagerList.size();} //View是否来自于对象@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0 == arg1;}//实例化一个页面@Overridepublic Object instantiateItem(ViewGroup container, int position) {// TODO Auto-generated method stubcontainer.addView(pagerList.get(position));return pagerList.get(position);}//销毁一个页面@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {// TODO Auto-generated method stubcontainer.removeView(pagerList.get(position));}}

代码下载地址:

当然我们还可以给每个页面加上标题:我们可以在ViewPager中使用下面两个控件

(1)android:support.v4.view.PagerTabStrip 它是ViewPager的子类需要写在ViewPager里面

(2)android.support.v4.view.PagerTitleStrip

通过根据自己的设计(1)top置顶,(2)置底bottom来设置布局

主类需要添加如下代码:

private List<String> titleList;

/** 为ViewPager设置标题* */titleList = new ArrayList<String>();titleList.add("红色");titleList.add("黄色");titleList.add("绿色");titleList.add("蓝色");

MyPagerAdapter适配器中需要修改构造函数,添加标题方法:

//添加标题的方法@Overridepublic CharSequence getPageTitle(int position) {// TODO Auto-generated method stubreturn titleList.get(position);}

代码下载地址:

我们还可以给标题的底线设置自定义颜色样式等:

接受失败也等于给了自己从零开始的机会,接受失败更是一种智者的宣言和呐喊;

ViewPager的使用方法(实现左右滑动切换页面)

相关文章:

你感兴趣的文章:

标签云: