使用ViewPager实现导航

一、认识ViewPager

ViewPager
1.加入ViewPager:使用组件
2.将Layout布局装换为View对象
(1)LayoutInflater lf=getLayoutInflater().from(this);lf.inflate(resource,root);
(2)View.inflate(context,resource,root);
3.ViewPager的形象:一个容器:可以盛装view对象或者是Fragment.
4.三个适配器:
(1)PagerAdapter 数据源:List
(2)FragmentPagerAdapter 数据源:List
(3)FragmentStatePagerAdapter 数据源:List

二、适配器PagerAdapter

第一步 新建一个view1.xml对象 

第二步 配置好属性后 在layout文件夹下复制多几个view2,3,4

第三步 在MainActivity中view1,2,3,4转为View对象 
并作为数据源(private ListviewList;(声明))
viewList=new ArrayList();(实例化)
第四步 把布局转成View对象 View view1 = View.inflate(this, R.layout.view1, null);//有好几条

第五步 放在数据源集合viewList1.add(view1);

第六步 新建类MyPagerAdapter 继承PagerAdapter
getCount()方法,返回的是页卡的数量
isViewFromObject(),判断View是否来自于对象
instantiateItem(),实例化一个页卡
destroyItem(),销毁一个页卡

第七步 回到MainActivity创建PagerAdapter适配器

第八步 写好一个ViewPager 传到Activity 然后初始化

第九步 给ViewPager加载适配器

三、.pagerTabStrip和.pagerTitleStrip

ViewPager
添加PagerTabStrip和PagerTitleStrip
1. Acitity中为ViewPager添加PagerTabStrip


android:id="@+id/tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top">

2. 为ViewPager的tab设置标题资源为String
titleList = new ArrayList();
titleList.add("First");
titleList.add("Second");
3. MyPagerAdapter中改一下构造函数,并重写getPageTitle()方法
public MyPagerAdapter(List viewList, List titleList) {
this.viewList = viewList;
this.titleList = titleList;
}
重写getPagerTitle()
@Override
public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
return titleList.get(position);
}
4. 创建PagerAdapter并设置给viewPager
MyPagerAdapter pagerAdapter = new MyPagerAdapter(viewList, titleList);
viewPager = (ViewPager) findViewById(R.id.viewPager);
viewPager.setAdapter(pagerAdapter);
5. PagerTitleStrip使用方法和PagerTabStrip一样

四、FragmentPagerAdapter

第一步 建立一个Fragment1继承Fragment

第二步 Fragment1中建立初始化界面的方法onCreateView

第三步 复制出4个Fragment2,3,4 并修改好布局文件

第四步 声明Fragment //private ListfragList; 

第五步 通过Fragment作为ViewPager的数据源
初始化 //fragList=new ArrayList();
添加 //fragList.add(new Fragment1());

第六步 配置数据适配器
新建一个类MyFragmentPagerAdapter 继承FragmentPagerAdapter 并实习一些必要的方法

第七步 使用getPageTitle方法实现标题信息返回

第八步 在MainActivity加载适配器 
初始化MyFragmentPagerAdapter
Vocation加载适配器 //pager.setAdapter(adapter2);

第九步 MyFragmentPager中返回值设置好

第十步 为添加页卡的维护和销毁 在MainActivity中设置好新方法 再加载新的适配器

五、监听器

ViewPager
切换页卡的监听器:
1.OnPageChangListener,其中最常用的函数是onPageSelected(int arg0);
2.Fragment生命周期比较全,以fragment为资源的ViewPager比较好控制,适用于逻辑比较复杂的情况,如果只是为了展示则推荐以view为资源的viewPager

你可能感兴趣的:(Android初学)