android笔记11-ViewPager

ViewPager:可以使视图左右滑动;

加入ViewPager:
<android.support.v4.view.ViewPager

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

将layout布局转化为View对象:
(1) LayoutInflater = getLayoutInflater().from(this);
   if.inflate(resource,root);
(2)View.inflate(context,resource,root);


ViewPager可以承装View或fragment;

配置Adapter:(数据源分为两种:View,fragment)
(1) PagerAdapter 数据源为:List<View>
(2) FragmentPagerAdapter 数据源为:List<Fragment>
(3)FragmentStatePagerAdapter 数据源为:List<Fragment>

监听器:OnPageChangeListener--用来监控ViewPager滑动到第几页;


步骤:
第一步(数据源):做好多个xml布局,在activity中,将布局文件转化为View对象,通过调用View类的静态成员函数
inflate(context,resource,root)来转化:
 context--this,上下文对象;
 resource--R.layout.xml布局文件;
 root--null,父;
创建List<View> 对象,将view加入list中;

第二步(适配器):创建类PagerAdapter继承于PagerAdapter,提示出方法,并将剩余方法补全:instantiateItem(...),destroyItem(...);
getCount--页数;
isViewFromObject--View是否来自于对象
    添上:return arg0==arg1;
instantiateItem--实例化一个页卡;
destroyItem--销毁一个页卡;
创建PagerAdapter的构造函数,传入的参数有List<View>,新建List<View>对象并用传入的参数给它this.ListView赋值;getCount中的页卡数等同于listView的大小,即return listView.size();instantiateItem中实例化时,调用container的成员函数addView(listView.get(positon))来添加listView中对应的View对象,return ListView.get(positon);destroyItem中则是调用container的成员函数removeView(listView.get(Position));

第三步(创建并加载适配器):创建第二步中的类对象,初始化ViewPager对象,让ViewPager加载适配器,采用setAdapter方法;

第四步(设置标题):创建PagerTadStrip对象,在ViewPager控件的内部添加PagerTadStrip控件,创建List<String>title来存放标题,并new ArrayList<String>(),调用add方法来添加文字标题;将title传到adapter的构造方法中,并重写dapter的构造方法;并在适配器中重写getPageTitle()方法,并return title.get(location);getPageTitle()为设置页卡的标题;

第五步:为pagerTabStrip对象设置属性:
 成员函数:setBackgroundColor(Color.RED);
      setTextColor(...);
      setDrawFullUnderline(false);去掉长线
      setTabIndicatorColor(..),设置tab线的颜色;
      


以fragment为数据源:
 第一步:建立Fragment1类继承自fragment类(导包support.v4,从而可以使低版本也可以使用)创建onCreate方法,return inflater.inflate(R.layout.view1,container,false);复制出4个fragment;在Activity中创建数据源List<Fragment>并初始化,并调用list的add(new fragment1)...来加入四个fragment;

第二步:创建类FragmentPagerAdapter继承于FragmentPagerAdapter,提示出方法,并将剩余方法补全,并创建构造函数,且传入FragmentManager,List<fragment>与List<String>的参数,在构造函数中给FragmentPagerAdapter的成员List<fragment>与List<String>赋上值;创建getPagerTitle()方法,并return titleList.get(position);

第三步:创建ViewPager对象并初始化;创建并初始化自定义的FragmentPagerAdapter= new FragmentPagerAdapter(FragmentManager,List<fragment>List<String>);FragmentManager如果用的是support.v4的包,不能像之前一样调用getFragmentManager()函数,而是要改MainActivity的继承,从Activity改为FragmentActivity,FragmentManager的对象就是调用getSupportFragmentManager();
最后让pager加载adapter;


重写的函数:
getItem(int arg0):return fragList.get(arg0);

getCount(): return fragList.size();

getPagerTitle()


如果fragmentPagerAdapter继承FragmentStatePagerAdapter,要多加两个方法,完成创建与销毁:instantiateItem,destroyItem;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值