viewpager的使用
Viewpager是用于实现多页面的切换效果的。在现在的app中非常常见,通常会配合Fragment使用。现在简单的对view的使用进行介绍。
首先认识一个这个控件,ViewPager。它是google SDk中自带的一个附加包的一个类(这个附加包是android-support-v4.jar),可以用来实现屏幕间的切换。
首先进行页面设计:
main.xml文件
1 <android.support.v4.view.ViewPager 2 android:layout_width="match_parent" 3 android:layout_height="match_parent" 4 android:id="@+id/viewPager" 5 ></android.support.v4.view.ViewPager> 6 7 <LinearLayout 8 android:layout_width="match_parent" 9 android:layout_height="wrap_content" 10 android:gravity="center_vertical" 11 android:layout_alignParentBottom="true" 12 android:orientation="horizontal" 13 android:id="@+id/group" 14 ></LinearLayout>
每个页面的的代码一共有三个item1,item2,item3现在只放一个其他的类似
<ImageViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:src="@drawable/view1"android:id="@+id/item1"/>
只有一张图片。
现在代码部分,先定义字段
1 ArrayList<View> viewlist;//页面的内容 2 ViewPager vpager;//页卡内容 3 ImageView image;//动画图片 4 ImageView[] imaglist;//动画图片 5 ViewGroup group;//动画图片效果
oncreate()方法
1 protected void onCreate(Bundle savedInstanceState) { 2 super.onCreate(savedInstanceState); 3 setContentView(R.layout.activity_main); 4 5 vpager = (ViewPager) findViewById(R.id.viewPager); 6 7 viewlist = new ArrayList<View>(); 8 LayoutInflater inflater = getLayoutInflater(); 9 View v1 = inflater.inflate(R.layout.item1, null); 10 View v2 = inflater.inflate(R.layout.item2, null); 11 View v3 = inflater.inflate(R.layout.item3, null); 12 13 viewlist.add(v1); 14 viewlist.add(v2); 15 viewlist.add(v3); 16 17 18 imaglist = new ImageView[viewlist.size()]; 19 for (int i = 0; i < viewlist.size(); i++) { 20 21 image = new ImageView(MainActivity.this); 22 23 if (i == 0) { 24 image.setImageResource(R.drawable.page_indicator_focused); 25 } else { 26 image.setImageResource(R.drawable.page_indicator_unfocused); 27 } 28 imaglist[i] = image; 29 group.addView(image); 30 } 31 32 vpager.setAdapter(adapter); 33 vpager.setOnPageChangeListener(new myPagerChangeListener()); 34 35 36 }
viewpager必须通过适配器使用。下面的代码定义了适配器
1 PagerAdapter adapter = new PagerAdapter() { 2 @Override 3 public int getCount() { 4 return viewlist.size(); 5 } 6 7 @Override 8 public boolean isViewFromObject(View view, Object o) { 9 return view==o; 10 } 11 12 @Override 13 public Object instantiateItem(ViewGroup container, int position) { 14 ((ViewPager)container).addView(viewlist.get(position)); 15 16 return viewlist.get(position); 17 } 18 19 @Override 20 public void destroyItem(ViewGroup container, int position, Object object) { 21 ((ViewPager)container).removeView(viewlist.get(position)); 22 } 23 };
最后是定义监听时间。在进行翻页的时候得动画
class myPagerChangeListener implements ViewPager.OnPageChangeListener{@Overridepublic void onPageScrolled(int i, float v, int i1) {}@Overridepublic void onPageSelected(int i) {for(int j=0;i<imaglist.length;j++){if(i==j){imaglist[j].setImageResource(R.drawable.page_indicator_focused);}else {imaglist[j].setImageResource(R.drawable.page_indicator_unfocused);}}}@Overridepublic void onPageScrollStateChanged(int i) {}}
转载于:https://www.cnblogs.com/yuqt/p/5042839.html
viewpager的使用相关推荐
- Android RecyclerView(和SnapHelper) 实现类似ViewPager的效果
实现的效果图如下 2 行代码就实现了,其余的都是recyclerview 的代码 如果不显示一次可以滑动多个的话可以使用LinearSnapHelper 具体代码如下(实际就2行代码呢) recycl ...
- ViewPager 实现界面加载不同的数据
demo 地址 下面是要要实现的效果图 有点类似RecyclerView 不过这个ViewPager 实现的 数据呢也是在adapter 中实现呢, 下面就直接上代码看看把 public class ...
- ViewPager与Fragment结合使用,以及切换的时候Fragment 的生命周期
下面要做的效果图下图 首先我们创建一个适配器如下 public class FraPagerAdapter extends FragmentPagerAdapter {private List< ...
- ViewPager 设置间距的方法
要实现的效果如下图 第一种方法:viewpager 外层添加一个布局 记得添加 android:clipChildren="false" // 是否限制子View在其范围内,默认为 ...
- 友盟页面统计 - 关于Viewpager中的Fragment的生命周期
Activity和Fragment各自理论上的生命周期 Activity的生命周期是较为经典也最清晰的,在此不表: Fragment从出现到广泛运用也有一段时间了,其标准生命周期也仅比Activity ...
- android 可折叠标题栏,ViewPager + Fragment + 折叠式标题栏异常
我模仿别人的知乎日报,新闻列表页没问题,内容明细页(NewsDetail)用的是ViewPager+Fragment.可以左右滑动看左右的新闻的. 我的项目地址是链接描述 但是我在做顶部可折叠式标题栏 ...
- android Viewpager取消预加载及Fragment方法的学习
1.在使用ViewPager嵌套Fragment的时候,由于VIewPager的几个Adapter的设置来说,都会有一定的预加载.通过设置setOffscreenPageLimit(int numbe ...
- android 弹出fragment,Android中ViewPager获取当前显示的Fragment
前言 在项目中,有时会用到在ViewPager中显示同样类型的Fragment,同时这样的Fragment的个数是动态的,但是PagerAdapter没有给我们提供getCurrentFragment ...
- 【Android】ViewPager实现无限循环滚动
最近做的一个项目,客户要求在ViewPager实现的主页面中滑动到最后一页后继续滑动能返回到第一页,也就是实现无限循环滚动,效果如下: 看了下ViewPager没有滑到尽头的回调方法,因此想到的解决方 ...
- Android ViewPager使用具体解释
这是谷歌官方给我们提供的一个兼容低版本号安卓设备的软件包,里面包囊了仅仅有在安卓3.0以上能够使用的api.而viewpager就是当中之中的一个利用它,我们能够做非常多事情,从最简单的导航,到页面菜 ...
最新文章
- php向页面中添加数据_PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码...
- linux线程的实现【转】
- golang 数据库null值错误 解决方法
- python 教程 网盘-python教程网盘
- C++静态成员函数小结
- Set精讲(Java)·算法常用集合处理方法
- php接口 含义,php晋级必备:一文读懂php接口特点和使用!
- Linux的网络管理命令使用总结
- Linux 莱特币Litcoin节点搭建
- python argv 详解_详解sys.argv[]的使用方法
- 【渝粤题库】陕西师范大学600000 仪器分析 作业(专升本)
- Rstudio运行时一直报错说找不到对象
- 斯坦福NLP名课带学详解 | CS224n 第7讲 - 梯度消失问题与RNN变种(NLP通关指南·完结)
- 【Day4.3】大皇宫内蹭讲解
- Python对word文档进行操作
- Arcgis根据矢量道路数据来提取道路中心线
- 《让子弹飞》系列——彩蛋之“城南两大家族”
- [整理][VBA]Excel合并表格
- css单元格固定宽度大小,超过部分使用省略号表示
- 浅谈统一权限管理平台
热门文章
- ECMAScript6 模版字符串
- 使用RQShineLabel
- java 当前时间格式_JAVA中获取当前系统时间及格式转换
- 入侵检测规则匹配算法--单模匹配算法、多模匹配算法、hyperscan
- 编译器前端概述与可信编译器
- mysql 支持gbk_MySQL不支持GBK编码的解决方法
- (87)Verilog HDL:七分频设计
- (12)FPGA面试技能提升篇(IUS、PT、Leda)
- java中用new创建一个对象的过程解析_【漫画】Java对象的创建和访问全过程详解...
- 4、python简单线性回归代码案例(完整)_python 实现一个简单的线性回归案例