android控件之ViewPager
来源:互联网 发布:小米2s3g网络设置 编辑:程序博客网 时间:2024/05/17 07:12
本例效果实现使用的是android自带的控件
android.support.v4.view.ViewPager
首先是初始化一个View数组,供ViewPager数据访问。
private ViewPager viewPager;private ArrayList<View> pageview;
viewPager = (ViewPager) findViewById(R.id.viewPager); //查找布局文件用LayoutInflater.inflate LayoutInflater inflater =getLayoutInflater(); View view1 = inflater.inflate(R.layout.item01, null); View view2 = inflater.inflate(R.layout.item02, null); View view3 = inflater.inflate(R.layout.item03, null); //将view装入数组 pageview =new ArrayList<View>(); pageview.add(view1); pageview.add(view2); pageview.add(view3);
核心是一个adapter的实现,通过adapter的封装,把几个View布局放置到一个数组中,并通过公用的重载函数进行重写,以获取数组中对应的View布局。
//数据适配器 PagerAdapter mPagerAdapter = new PagerAdapter(){ @Override //获取View数组中的个数 public int getCount() { // TODO Auto-generated method stub return pageview.size(); } @Override //判断是否由对象生成界面 public boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub return arg0==arg1; } //是从ViewGroup中移出当前View public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView(pageview.get(arg1)); } //返回一个对象,这个对象表明了PagerAdapter适配器选择哪个对象放在当前的ViewPager中 public Object instantiateItem(View arg0, int arg1){ ((ViewPager)arg0).addView(pageview.get(arg1)); return pageview.get(arg1); } };
adapter设计好后,直接把他分配给ViewPager 即可。
效果图如下所示:
图一为初始化第一个View;
图二为滑动过程中的截图,界面中会显示出上一个view跟下一个view;
图三为滑动后的截图,界面中只有下一个view显示;
图一
图二
图三
完整代码如下所示:
package com.example.androidviewtmp;import java.util.ArrayList;import android.app.Activity;import android.os.Bundle;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.Window;public class MainActivity extends Activity {private ViewPager viewPager;private ArrayList<View> pageview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置无标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.viewPager); //查找布局文件用LayoutInflater.inflate LayoutInflater inflater =getLayoutInflater(); View view1 = inflater.inflate(R.layout.item01, null); View view2 = inflater.inflate(R.layout.item02, null); View view3 = inflater.inflate(R.layout.item03, null); //将view装入数组 pageview =new ArrayList<View>(); pageview.add(view1); pageview.add(view2); pageview.add(view3); //数据适配器 PagerAdapter mPagerAdapter = new PagerAdapter(){ @Override //获取当前窗体界面数 public int getCount() { // TODO Auto-generated method stub return pageview.size(); } @Override //断是否由对象生成界面 public boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub return arg0==arg1; } //是从ViewGroup中移出当前View public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView(pageview.get(arg1)); } //返回一个对象,这个对象表明了PagerAdapter适配器选择哪个对象放在当前的ViewPager中 public Object instantiateItem(View arg0, int arg1){ ((ViewPager)arg0).addView(pageview.get(arg1)); return pageview.get(arg1); } }; //绑定适配器 viewPager.setAdapter(mPagerAdapter); }}
0 0
- android控件之ViewPager
- Android常用控件之ViewPager
- Android引用控件之ViewPager
- Android常用控件之ViewPager的使用
- 一、Android控件选择之ViewPager
- Android开发之自定义控件--ViewPager
- Android开发之自定义控件--ViewPager
- Android--多页面管理控件之ViewPager
- Android自定义控件 之 轮播图(ViewPager)重点及学习
- Android:初级控件之(一)ViewPager(一)
- Android高级控件系列六之ViewPager的使用
- 自定义控件之viewPager轮播图
- Anddroid控件之ViewPager详解
- android Viewpager控件使用随笔
- Android ViewPager控件的使用
- Android中的ViewPager指示控件
- android 控件学习笔记 --------ViewPager
- Android ViewPager监听其控件
- 蓝桥杯 算法训练 2的次幂表示 (递归)
- dao和service
- linux自动补全无法正确提示
- 蓝桥杯历届-奇妙的数字
- fuel的公钥问题
- android控件之ViewPager
- Codeforces Round #260 (Div. 2) B. Fedya and Maths (数学规律)
- 个人工具集
- RTTI(Run-Time Type Identification)、虚函数和虚基类的实现方式、开销分析及使用指导
- AS和Eclipse的快捷键
- BP神经网络的自适应步长问题
- (3)下载网络文件
- hdu1008
- 命名参数(C#)