ViewPager相关笔记
来源:互联网 发布:改本地host变更域名 编辑:程序博客网 时间:2024/05/29 03:17
只有步骤,备用
ViewPager-PagerAdapter
布局控件
在activity的布局文件中添加控件,控件标记名称为:
android.support.v4.view.ViewPager
有两个子控件:
android.support.v4.view.PagerTitleStrip(会在tab标题的上面,但是不知道怎么随着页面的左右滚动切换,所以暂时不知道如何使用这个控件)
android.support.v4.view.PagerTabStrip(每个tab页面的标题,会随着页面的左右滚动切换)
另外还有各个页面的布局文件,和平时的页面写法一样,不说了
获取控件对象并操作
在activity中使用findViewById()获取到控件的对象
上面说了因为不知道PagerTitleStrip如何自动切换,所以暂时不使用这个控件,并且PagerTabStrip也足够了
获取到PagerTabStrip的对象,使用其方法可以设置tab标题指示器的样式
获取到ViewPager的对象,主要使用其setAdapter()方法
生成各个页面
使用LayoutInflater对象的inflate()方法,加载各个页面的布局文件,获取到各个页面View类型的对象
然后把这些获取到的页面对象放到一个ArrayList<View>
里面去,等下提供数据给适配器
另外,把每个页面的tab标题,放到一个ArrayList<String>
里面去,也提供给适配器
适配器
写一个类继承PagerAdapter,主要重写PagerAdapter的以下方法:
//获取页面数量@Overridepublic int getCount() { // TODO Auto-generated method stub return myListViews.size();}//这个不清楚作用,但也必须重写,重写内容如下@Overridepublic boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub return arg0==arg1;}//初始化的作用吧,在这里添加页面到页面容器//父类还有另一个重载的方法(参数不同),重写任意一个应该都可以//myListViews是上面提到的ArrayList<View>,里面存放View类型的页面的对象@Overridepublic Object instantiateItem(ViewGroup container, int position) { // TODO Auto-generated method stub container.addView(myListViews.get(position)); return myListViews.get(position);}//销毁、去掉页面@Overridepublic void destroyItem(ViewGroup container, int position, Object object) { // TODO Auto-generated method stub container.removeView(myListViews.get(position));}//在这里添加标题数据到标题容器//myListPagerTabs是上面提到的ArrayList<String>,里面存放的是String类型的页面标题@Overridepublic CharSequence getPageTitle(int position) { // TODO Auto-generated method stub return myListPagerTabs.get(position);}
写好适配器类之后就可以使用ViewPager对象的setAdapter()方法绑定上去了
ViewPager-FragmentPagerAdapter
基本和ViewPager+PagerAdapter一样,只是需要写几个fragment类和对应的页面的布局文件,每一个页面都是一个fragment,这些学习过fragment相关的知识就会了
不一样的地方:
1、上面的ArrayList<Fragment>
,里面存放的东西也就是你写的fragment的对象了
2、重写父类FragmentPagerAdapter的具体方法
//只需要重写下面三个就行了@Overridepublic Fragment getItem(int arg0) { // TODO Auto-generated method stub return myListViews.get(arg0);}@Overridepublic int getCount() { // TODO Auto-generated method stub return myListViews.size();}@Overridepublic CharSequence getPageTitle(int position) { // TODO Auto-generated method stub return myListTabs.get(position);}
- ViewPager相关笔记
- ViewPager相关
- ViewPager 笔记
- Viewpager笔记
- ViewPager笔记
- viewpager笔记
- ViewPager的相关使用
- ViewPager相关问题总结
- ViewPager相关总结
- Activity Fragment 相关 ViewPager轮播 相关
- android笔记11-ViewPager
- ViewPager学习笔记
- viewpager+fragment学习笔记
- FragmentPagerAdapter+ViewPager 笔记
- viewpager 左右滑动笔记
- 学习笔记之ViewPager
- viewpager学习笔记
- 温故知新-ViewPager学习笔记
- OC_NSString
- 数据库之 truncate 、delete 、drop之区别
- 数据分析浅谈
- 项目名中&的问题
- iOS OC05_NSString总结
- ViewPager相关笔记
- HDU 2072
- 进程知识总结
- C语言01 -- 基本概念
- qt线程动态回调被调类中的函数
- 火车上的大伯
- Appium -java - windows7 环境搭建 真机测试
- poj 3207 Ikki's Story IV - Panda's Trick(2-sat)
- Unity3d中的属性(Attributes)整理