ViewPager详解(一)简单介绍
来源:互联网 发布:linux 日志切割脚本 编辑:程序博客网 时间:2024/06/03 21:21
ViewPager详解(一)简单介绍
一、什么是ViewPager?
1.1 谷歌官方解释
1.2 大致意思
布局管理器允许左右翻转带数据的页面,你想要显示的视图可以通过实现PagerAdapter来显示。这个类其实是在早期设计和开发的,它的API在后面的更新之中可能会被改变,当它们在新版本之中编译的时候可能还会改变源码。
ViewPager经常用来连接Fragment,它很方便管理每个页面的生命周期,使用ViewPager管理Fragment是标准的适配器实现。最常用的实现一般有FragmentPagerAdapter和FragmentStatePagerAdapter。
FragmentPagerAdapter和FragmentStatePagerAdapter是ViewPager和Fragment一起使用时才会用到,后面会详细介绍,这里就不介绍了。
1.3 介绍总结
- ViewPager是v4包中的一个类。
- ViewPager继承自ViewGroup,其实是一个容器。
- ViewPager类似于ListView,也有自己的适配器,里面用来填充数据页面。
- ViewPager一般和Fragment一起使用,它更方面的管理页面中Fragment的生命周期。
二、ViewPager的简单使用
布局文件中申明控件
由于ViewPager是一个类似ListView的容器,一般使用单标签
<!--填充整个页面的ViewPager--> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent"/>
代码中设置显示数据
获取控件对象
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
自定义类继承PagerAdapter填充页面和数据
- int getCount():返回显示多少个页面
- boolean isViewFromObject(View view, Object object):判断初始化返回的Object是不是一个View对象
- Object instantiateItem(ViewGroup container, int position):初始化显示的条目对象
void destroyItem(ViewGroup container, int position, Object object):销毁条目对象
/** * 自定义类实现PagerAdapter,填充显示数据 */class MyAdapter extends PagerAdapter { // 显示多少个页面 @Override public int getCount() { return 5; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } // 初始化显示的条目对象 @Override public Object instantiateItem(ViewGroup container, int position) { // return super.instantiateItem(container, position); // 准备显示的数据,一个简单的TextView TextView tv = new TextView(MainActivity.this); tv.setGravity(Gravity.CENTER); tv.setTextSize(20); tv.setText("我是天才" + position + "号"); // 添加到ViewPager容器 container.addView(tv); // 返回填充的View对象 return tv; } // 销毁条目对象 @Override public void destroyItem(ViewGroup container, int position, Object object) { // super.destroyItem(container, position, object); container.removeView((View) object); }}
设置适配器
viewPager.setAdapter(new MyAdapter());
效果图
个人主页
Demo下载地址
以上纯属于个人平时工作和学习的一些总结分享,如果有什么错误欢迎随时指出,大家可以讨论一起进步。
0 0
- ViewPager详解(一)简单介绍
- ViewPager简单介绍(一)
- ViewPager详解(一)
- 【Android UI设计与开发】1.引导界面(一)ViewPager介绍和简单实现
- ViewPager的简单介绍
- 简单介绍 ViewPager
- ViewPager简单介绍
- ViewPager 的简单使用(一)
- 详解Java泛型(一)之简单介绍
- JFreeChart详解——各类的简单介绍(一)
- ViewPager 详解(一)---基本入门
- ViewPager 详解(一)---基本入门
- ViewPager 详解(一)---基本入门
- ViewPager 详解(一)---基本入门
- ViewPager 详解(一)---基本入门
- ViewPager 详解(一)---基本入门
- ViewPager 详解(一)---基本入门
- ViewPager 详解(一)---基本入门
- noip2013积木大赛
- Oracle 的过程和函数
- hdu3526(最小费用流)
- 异步任务下载网络图片
- 236. Lowest Common Ancestor of a Binary Tree
- ViewPager详解(一)简单介绍
- AngularJS: $broadcast $emit $on
- [LeetCode-Java]35. Search Insert Position
- 微信小程序:MINA视图层
- Oracle 自定义结构(Record)
- dijkstra和spfa
- 我在中东肝PS
- noip2013花匠
- Mac上用Python安装PIL