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 ...
随机推荐
- selenium + python 自动化测试环境搭建
selenium + python 自动化测试 —— 环境搭建 关于 selenium Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操 ...
- C语言练习代码
1.运用for循环根据输入的金字塔层数,输出金字塔 eg: #include <stdio.h>int main(void){ int i,j,num; printf("请输入三 ...
- selenium python (三)鼠标事件
# -*- coding: utf-8 -*-#鼠标事件 #ActionChains类中包括: # context_click() 右击: ...
- Autodesk Stingray 游戏引擎
Autodesk的游戏引擎质量够高的. http://v.youku.com/v_show/id_XMTMwMjc0MDIwMA==.html?qq-pf-to=pcqq.group http://v ...
- ps 图片提取线稿方法2种 转
- FlatBuffers与protobuf性能比较
FlatBuffers发布时,顺便也公布了它的性能数据,具体数据请见Benchmark. 它的测试用例由以下数据构成"a set of about 10 objects containing ...
- JavaScript面向对象(01)--函数
在JavaScript中,函数和对象有区别,也有联系, 首先函数是一个对象,但是和对象存在一些区别如下: 1,不论在java还是js中,如果把一个对象赋值给另一个变量,那么,后者会指向前者对象所在的内 ...
- 实现JQuery EasyUI右键菜单变灰不可用效果
使用过EasyUI的朋友想必都知道疯狂秀才写的后台界面吧,作为一个初学者我不敢妄自评论它的好坏,不过它确实给我们提供了一个很好框架,只要在它的基础上进行修改,基本上都可以满足我们开发的需要. 知道“疯 ...
- Spark1.0.x入门指南
1 节点说明 IP Role 192.168.1.111 ActiveNameNode 192.168.1.112 StandbyNameNode,Master,Worker 192.168.1. ...
- shell学习目录
1. 了解shell 2. shell 入门基础 3. Shell脚本文件中常用的操作语句