Android学习——ViewPager的使用(一)
2024-09-15 12:09:58
这一节介绍使用ViewPager,加载ViewPager主要有三部分,数据源、适配器和ViewPager与适配器关联。其中数据源分为View对象和Fragment对象,这一节先来介绍View对象。
数据源
加载View对象,数据源自然是View的集合,这里通过View的inflate方法来加载布局文件所对应的view对象,并添加到List集合中作为数据源。
fragmentList=new ArrayList<>();
fragmentList.add(new Fragment1());
fragmentList.add(new Fragment2());
fragmentList.add(new Fragment3());
fragmentList.add(new Fragment4());
viewList=new ArrayList<View>();
View view1 = View.inflate(this, R.layout.view_1, null);
View view2 = View.inflate(this, R.layout.view_2, null);
View view3 = View.inflate(this, R.layout.view_3, null);
View view4 = View.inflate(this, R.layout.view_4, null);
View view5 = View.inflate(this, R.layout.view_5, null);
View view6 = View.inflate(this, R.layout.view_6, null);
viewList.add(view1);
viewList.add(view2);
viewList.add(view3);
viewList.add(view4);
viewList.add(view5);
viewList.add(view6);
二、适配器
适配器,简单来说就是声明对数据源的一系列操作,在页面滑动到不同位置时,加载出对应的界面。利用View对象加载适配器时,需要新建一个类,并继承PagerAdapter父类。
public class MyFragmentAdapter extends FragmentPagerAdapter { private List<Fragment> fragmentList; public MyFragmentAdapter(FragmentManager fm,List<Fragment> fragmentList) {
super(fm);
this.fragmentList=fragmentList;
} @Override
public Fragment getItem(int position) {
return fragmentList.get(position);
} @Override
public int getCount() {
return fragmentList.size();
} }
public class MyPageAdapter extends PagerAdapter
初始化其构造方法,由于我们需要获取数据源,故构造方法中需要得到对应的数据源。
public MyPageAdapter(List<View> viewList){
this.viewList=viewList;
}
重写下面四个方法:
getCount方法,返回获取到的数据源的个数:
@Override
public int getCount() {
return viewList.size();
}
isViewFromObject,按如下写好即可
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
instantiateItem,在加载页面布局的时候调用的方法
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(viewList.get(position));
return viewList.get(position);
}
destoryItem,在销毁页面布局时调用的方法
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(viewList.get(position));
}
三、ViewPager与适配器关联
只需要在Activity中,实例化适配器和ViewPager控件,并用setAdapter方法关联即可
pager= (ViewPager) findViewById(R.id.pager);
MyPageAdapter myadapter = new MyPageAdapter(viewList);
pager.setAdapter(myadapter);
最新文章
- Jquery(1)
- 开发 ASP.NET vNext 续篇:云优化的概念、Entity Framework 7.0、简单吞吐量压力测试
- C#的IPAddress IPEndPoint
- php实现留言功能
- tyvj1614 魔塔魔塔!
- freemarker 实现对URL的安全编码
- Web前端测试题
- php学习笔记:利用gd库生成图片,并实现随机验证码
- Java中的继承与组合(转载)
- RTSP协议、RTMP协议、HTTP协议的区别
- IOS 实现自定义的导航栏背景以及自定义颜色的状态栏(支持7.0以及低版本)
- PHP 表单 - 验证邮件和URL
- mysql 套事物实例
- Array(数组)的使用
- 使用ControllerAdvice注意事项,Ambiguous @ExceptionHandler method mapped for [class org.springframework.web.bind.MethodArgumentNotValidException]
- javascript入门篇(二)
- zabbix3.0监控Windows服务器
- 【软件工程1916|W(福州大学)_助教博客】团队第四次作业(第7次)成绩公示
- 潭州课堂25班:Ph201805201 爬虫基础 第七课 Python与常见加密方式 (课堂笔记)
- Tomcat中Url中文乱码解决办法