使用ViewPager实现导航

一、认识ViewPager

ViewPager
1.加入ViewPager:使用<android.support.v4.view.ViewPager></android.support.v4.view.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<View>
(2)FragmentPagerAdapter 数据源:List<Fragment>
(3)FragmentStatePagerAdapter 数据源:List<Fragment>

二、适配器PagerAdapter

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

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

第三步 在MainActivity中view1,2,3,4转为View对象 
并作为数据源(private List<View>viewList;(声明))
viewList=new ArrayList<View>();(实例化)
第四步 把布局转成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.support.v4.view.ViewPager >
<android.support.v4.view.PagerTabStrip
android:id="@+id/tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top">
</android.support.v4.view.PagerTabStrip>
2. 为ViewPager的tab设置标题资源为String
titleList = new ArrayList<String>();
titleList.add("First");
titleList.add("Second");
3. MyPagerAdapter中改一下构造函数,并重写getPageTitle()方法
public MyPagerAdapter(List<View> viewList, List<String> 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 List<Fragment>fragList; 

第五步 通过Fragment作为ViewPager的数据源
初始化 //fragList=new ArrayList<Fragment>();
添加 //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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值