Android笔记: ViewPager基本用法
ViewPager控件可以实现多个View(或fragment)滑动切换的效果,属于比较常用的控件.下面用一个简单的例子介绍一下该控件的基本用法.
- 首先是布局文件activity_view_pager.xml,简单起见,该布局文件没有ViewGroup,只有一个ViewPager控件
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
- 两个用于加载的视图
layout1.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00ff00"
android:orientation="vertical" >
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="button" />
</LinearLayout>
layout2.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff0000"
android:orientation="vertical" >
</LinearLayout>
- 然后是主体的代码,使用过程
- 声明ViewPager控件和需要加载的视图.
- 绑定视图.
- 为ViewPager创建一个PagerAdapter对象.
- 实现PagerAdapter中的方法
- 将adapter绑定到ViewPager对象上.
public class ViewPagerActivity extends Activity {
// 1. 声明ViewPager控件和需要加载的视图.
private ViewPager mViewPager;
private View mView1, mView2;
private ArrayList<View> mViews = new ArrayList<View>();
private Button mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_pager);
bindViews();
initViewPager();
}
// 2. 绑定视图.
private void bindViews() {
mViewPager = (ViewPager) findViewById(R.id.view_pager);
LayoutInflater inflater = getLayoutInflater();
mView1 = inflater.inflate(R.layout.layout1, null);
mView2 = inflater.inflate(R.layout.layout2, null);
// 访问ViewPager引入布局中的控件
mButton = (Button) mView1.findViewById(R.id.button);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mButton.setText("clicked");
}
});
}
private void initViewPager() {
mViews.add(mView1);
mViews.add(mView2);
// 3. 为ViewPager创建一个PagerAdapter对象.
PagerAdapter adapter = new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// 4.1 实现PagerAdapter中的方法
return arg0 == arg1;
}
@Override
public int getCount() {
// 4.2 实现PagerAdapter中的方法
return mViews.size();
}
@Override
public void destroyItem(View container, int position,
Object object) {
// 4.3 实现PagerAdapter中的方法
((ViewPager) container).removeView(mViews.get(position));
}
@Override
public Object instantiateItem(View container, int position) {
// 4.4 实现PagerAdapter中的方法
((ViewPager) container).addView(mViews.get(position));
return mViews.get(position);
}
};
// 5. 将adapter绑定到ViewPager对象上.
mViewPager.setAdapter(adapter);
}
}
Android笔记: ViewPager基本用法的更多相关文章
- android笔记:ViewPager实现界面的滑动
最近在学习ViewPager实现界面的滑动,拜读了郭神的博客文章,并抽取归纳了自己对ViewPager的理解. ViewPager实现界面滑动的步骤如下: 1.在xml布局内加入控件android.s ...
- Android笔记: ListView基本用法-ArrayAdapter
ListView实现过程: 新建适配器->添加数据源到适配器->视图加载适配器 数据适配器: 把复杂的数据(数组.链表.数据库.集合等)填充在制定的试图界面上. 两种常用数据适配器 Arr ...
- xamarin android viewpager的用法
1.什么是ViewPager 通过手势滑动可以完成view的切换,一般是用来app的引导页或则实现图片轮播,类似网页上的banner轮播. Adnroid 3.0后引入的一个UI控件,在xamarin ...
- android的logcat详细用法
Android日志系统提供了记录和查看系统调试信息的功能.日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过 logcat 命 令来查看和使用. 使用logcat命令 你可以用 logc ...
- Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878本文出自[DylanAndroid的博客] Android中Vie ...
- Android中viewPager的一两点使用
Android中viewPager的一两点使用 viewPager是谷歌官方提供的一种方便实现页面滑动效果的控件,可以直接使用也可以和fragment联合使用.这里只简单说下直接使用. 使用viewP ...
- android之ViewPager
在android中ViewPager是非常常用的控件.它在android.support.v4.view.ViewPager下.你们自己可以进http://developer.android.com/ ...
- Android笔记——Android中数据的存储方式(二)
我们在实际开发中,有的时候需要储存或者备份比较复杂的数据.这些数据的特点是,内容多.结构大,比如短信备份等.我们知道SharedPreferences和Files(文本文件)储存这种数据会非常的没有效 ...
- 怎么通过activity里面的一个按钮跳转到另一个fragment(android FragmentTransaction.replace的用法介绍)
即:android FragmentTransaction.replace的用法介绍 Fragment的生命周期和它的宿主Activity密切相关,几乎和宿主Activity的生命周期一致,他们之间最 ...
随机推荐
- Java虚拟机:JVM内存分代策略
版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代.老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存 ...
- Python基础之模块、数据类型及数据类型转换
一.模块 1.标准库 不需要安装,直接调入使用的模块. import sys模块: import sys print(sys.path) #打印环境变量绝对路径 print(sys.argv) #打印 ...
- 禁止UIWebView随键盘的弹起而往上滚动
问题:当UIWebView中的html有输入框,点击输入框,UIWebView会随键盘的弹起而整体往上移动,收起键盘后,UIWebView无法回到原来的位置; 问题的原因:由于UIWebView继承的 ...
- 介绍CSS的相关知识
以下是我跟大家分享的有关CSS的相关知识点: ①什么是CSS? css(Cascading Style Sheets)是层叠样式表 ②css的三种样式使用方法: 1,内联样式表:直接在html标签属性 ...
- 进阶篇之纯css+字体实现五角星(半颗星)评分
1.前言 之前写了一篇实现五角星打分效果的demo.这个demo用来实现打分效果绰绰有余,那么有时候我们在统计评分的时候,就会有半颗星或者1/3颗星星这样的那要如何实现呢?来来来,纯字体+css实现! ...
- 【viewport】移动设备的兼容性问题
前段时间用微信开发者工具重构一个菜单项目的时候发现iphoneSE显示不全以及布局错乱的问题,找到了一个简单粗暴的解决方法. 移动设备上的viewport分为layout viewport ...
- ES6学习目录
前面的话 ES6是JavaScript语言的下一代标准,已经在 2015 年 6 月正式发布.它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言 为什么要学 ...
- iOS源码博文集锦3
iOS精选源码 高仿淘宝首页 登录动画 iOS高德二次封装,有定位,轨迹,语音实时导航,GPS纠偏..... 逗视iOS客户端MGDS_Swift 两句代码搞定转场动画 自定义刷新控件 已封装支持自定 ...
- 一小时学会ECMAScript6新特性
ECMAScript 简介 简称es,是一套标准,javascript就是使用这套标准的语言.主流的浏览器使用的是ECAMScript5,ECAMScript6(ECAMScript2015)是一涛新 ...
- Thinkpad T450 Linux Mint(Ubuntu) 安装Nvidia显卡驱动
事件背景 前段时间从Ubuntu切换到了LinuxMint,想尝尝鲜. LinuxMint是基于Ubuntu改良的,放弃了Ubuntu的Unity界面,更加易用,更加适合我这样的小白人员.本文也适用于 ...