Android ViewPager 应该及技巧
1. android 中的ViewPager 功能类似于iOS中的scrollView,实现最主要的页面的左右滑动功能。该类存在于Google的兼容包里面,所以在引用时记得在BuilldPath中增加“android-support-v4.jar”
2. 在实现中ViewPager须要绑定一个适配器(Adapter)。在适配器中返回页面view的个数及详细的形式。这个就类似于iOS中tableView的实现,必须实现UITableView代理中的 numberOfCell 跟CellForRow,一个用于返回共同拥有多少数据,还有一个用于返回每一条详细的数据。
3. ViewPager 通常与Fragment一起使用。
在ViewPager中增加多fragment(页面) 来实现左右的滑动。
4.看个最简单的ViewPager的代码: 如果我们如今已经有三个Fragment ,他们的背影颜色分别为red,green, blue。
1) 我们在xml 文件里加入一个ViewPager,代码例如以下
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MyActivity"> <android.support.v4.view.ViewPager
android:id="@+id/mViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</android.support.v4.view.ViewPager> </RelativeLayout>
2)在activtiy .java中使用此ViewPager.如今我们有了ViewPager了,还须要一个Adapter,通常我们继承FragmentPagerAdapter来自己定义我们的Adapter以便重写返回个数及Item的函数。在Adaoter 中定义一个数组,里面添加上面的Fragment(假设想动态添加留个添加的接口就ok),代码例如以下
public static class TabAdapter extends FragmentPagerAdapter implements ViewPager.OnPageChangeListener { private ArrayList<Fragment> frg = new ArrayList<Fragment>(); public TabAdapter(FragmentManager fm) {
super(fm); CountingFragment f1 = new CountingFragment();
frg.add(f1); CursorFragment f2 = new CursorFragment(); frg.add(f2);
FragmentPagerSupport f3 = new FragmentPagerSupport(); frg.add(f3);
notifyDataSetChanged();
} @Override
public Fragment getItem(int i) { return frg.get(i);
} @Override
public int getCount() {
return frg.size();
} @Override
public void onPageScrolled(int i, float v, int i2) { } @Override
public void onPageSelected(int i) { } @Override
public void onPageScrollStateChanged(int i) { } } }
为了监听ViewPager
移动变化的事件。我们实现了ViewPager.OnPageChangeListener 。它的实现三个函数看名字就知道什么意思了。
getCount 返回ViewPager 的Fragment的数量。getItem 返回每一个位置的Item。
3) 关联ViewPgaer跟Adapter
mViewPager = (ViewPager)findViewById(R.id.mViewPager); mTabAdapter = new TabAdapter(getSupportFragmentManager()); mViewPager.setAdapter(mTabAdapter);
getSupportFragmentManager 返回一个Fragment的管理器,是FragmentPagerAdapter的要求參数。
经过上面的步骤我们就实现了一个简单的能够左右滑动的ViewPager。
一些属性的介绍
- 当我们有须要用按键去控制ViewPager的左右滑动时。使用属性
boolean arrowScroll(int
direction) 向前翻页參数传1,向后翻页參数传2 - 让ViewPager不响应滑动的切换事件。如让嵌套的子ViewPager不响应滑动切换事件,仅仅是响应点击切换事件,将滑动事件交给父ViewPager处理。,使用
boolean |
canScrollHorizontally(int direction) Check if this view can be scrolled horizontally in a certain direction.
|
@Override
public boolean canScrollHorizontally(int direction) {
// TODO Auto-generated method stub
return false;
}
Android ViewPager 应该及技巧的更多相关文章
- 最强 Android Studio 使用小技巧和快捷键
写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...
- Android ViewPager 用法
Android ViewPager 用法 场景:一般第一次打开应用程序时,程序会有一个提示页来给展现应用程序都有哪些功能:或者程序更新时,又更新哪些新特性,都可以使用ViewPager Demo 描述 ...
- Android ViewPager再探:增加滑动指示条
上一篇:<Android ViewPager初探:让页面滑动起来> ViewPager只是左右滑动有些丑,也不知道当前位于第几页面. 可以在上方加入滑动指示条,来确定当前位置. 只需要修改 ...
- Android ViewPager初探:让页面滑动起来
下一篇:<Android ViewPager再探:增加滑动指示条> ViewPager需要用到适配器PagerAAdapter,以下四个函数需要重写: instantiateItem(Vi ...
- Android课程---Android Studio使用小技巧:提取方法代码片段
这篇文章主要介绍了Android Studio使用小技巧:提取方法代码片段,本文分享了一个快速复制粘贴方法代码片段的小技巧,并用GIF图演示,需要的朋友可以参考下 今天来给大家介绍一个非常有用的Stu ...
- Android ViewPager Fragment使用懒加载提升性能
Android ViewPager Fragment使用懒加载提升性能 Fragment在如今的Android开发中越来越普遍,但是当ViewPager结合Fragment时候,由于Androi ...
- Android ViewPager 打造炫酷欢迎页
Android ViewPager 打造炫酷欢迎页 ViewPager是Android扩展v4包中的类,这个类可以让用户切换当前的View.对于这个类的应用场景,稍加修改就可以应用到多个环境下.比如: ...
- Android PopupWindow的使用技巧(转)
Android PopupWindow的使用技巧 PopupWindow是Android上自定义弹出窗口,使用起来很方便. PopupWindow的构造函数为 public PopupWindow(V ...
- xamarin android viewpager的用法
1.什么是ViewPager 通过手势滑动可以完成view的切换,一般是用来app的引导页或则实现图片轮播,类似网页上的banner轮播. Adnroid 3.0后引入的一个UI控件,在xamarin ...
随机推荐
- 【转】linux之ln命令
转自:http://www.cnblogs.com/peida/archive/2012/12/11/2812294.html ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位 ...
- Java之--Java基础知识
一.软件基础知识 1.软件:一系列按特定顺序组织的计算机数据和指令的集合. 1)系统软件:DOS.windows.linux. 2)应用软件:QQ.扫雷等. 2.软件开发就是制作软件. 3.人与计算机 ...
- U盘安装CentOS无法进入Centos系统解决办法
转自:http://blog.sina.com.cn/s/blog_3feedf320101idlu.html 目前使用U盘安装系统逐渐因为它的便捷而受到人们的欢迎,但是使用U盘来安装Cent ...
- 【Unity入门】碰撞检测与触发检测
版权声明:本文为博主原创文章,转载请注明出处. 在Unity里面,游戏物体的碰撞我们可以通过刚体组件(Rigidbody)和碰撞器组件(Collider)来进行检测.首先在场景里面添加一个Plane面 ...
- ubuntu 下安装sh 文件
1. cd 到 指定文件夹 如: cd /home/ddy/下载 2. sudo chmod +x *.sh 3. sudo ./*.sh ok 了 (1)数据预处理 可以用下载好的数据集,也可 ...
- PASCAL相关图书推荐
PASCAL程序设计(第2版) 作 者 郑启华 著 出 版 社 清华大学出版社 出版时间 2013-01-01 版 次 2 页 数 286 印刷时间 2013-01-01 ...
- XAML概览 1(译自JeremyBytes.com)
(文章译自JeremyBytes.com,由于原文太长,故分成几篇,能力所限,如有疏漏,希望海涵.另外若有侵权,务必尽快告知) Overview 了解XAML (可扩展应用程序标记语言)是使用WPF和 ...
- Linux下gdb使用整理记录
1.创建cpp文件:vim sourcefile.cpp 2.生成可执行文件:g++ -g sourcefile.cpp -o exename ------据说是要必须加上-g参数,否则不可调试 3. ...
- 在Chrome Console中加载jQuery
var jq = document.createElement('script'); jq.src = "//ajax.googleapis.com/ajax/libs/jquery/1/j ...
- 给一已经排序数组A和x,求A中是否包含两个元素之和为x
亲爱的大神老爷们,这是小渣第一次写blog,欢迎大家来喷(批评指正),算法渣因为面试中连这道题都不会写就自己琢磨了一下,也参考了网上大家的做法 解法一: 思路:从首尾向目的靠拢,因为已经排序,[假设存 ...