Android ViewPager 用法

场景:一般第一次打开应用程序时,程序会有一个提示页来给展现应用程序都有哪些功能;或者程序更新时,又更新哪些新特性,都可以使用ViewPager

Demo

描述:实现三个界面的相互切换,页面颜色分别为红,绿,蓝

activity_main:

主界面只添ViewPager这一个控件

android:overScrollMode="never" 作用是当页面已经滑动到最左边或最右时,去掉阴影
<?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.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:overScrollMode="never"> </android.support.v4.view.ViewPager>
</LinearLayout>

item_image_view:

ViewPager里面显示内容的布局文件,里面只有一个ImageView

<?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:orientation="vertical"> <ImageView
android:id="@+id/item_image"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>

MainActivity:

package com.zy.viewpager;

import android.graphics.Color;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView; import java.util.ArrayList;
import java.util.List; public class MainActivity extends AppCompatActivity {

   //存放view
List<View> viewList; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); viewList = new ArrayList<>();
{
       //获取item_image_view布局文件
View view = LayoutInflater.from(this).inflate(R.layout.item_image_view, null);
       //根据item_image_view布局文件找到ImageView
ImageView imageView = (ImageView) view.findViewById(R.id.item_image);
       //给ImageView添加背景色
imageView.setBackgroundColor(Color.RED);
       //添加到list里边
viewList.add(view);
}
{
View view = LayoutInflater.from(this).inflate(R.layout.item_image_view, null);
ImageView imageView = (ImageView) view.findViewById(R.id.item_image);
imageView.setBackgroundColor(Color.GREEN);
viewList.add(view);
}
{
View view = LayoutInflater.from(this).inflate(R.layout.item_image_view, null);
ImageView imageView = (ImageView) view.findViewById(R.id.item_image);
imageView.setBackgroundColor(Color.BLUE);
viewList.add(view);
}
     //获取ViewPager
ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
     //为ViewPager 设置适配器,new一个匿名内部类,并实现里面抽象方法,并且重写instantiateItem和destroyItem方法
viewPager.setAdapter(new PagerAdapter() {
       //返回数据总长度
@Override
public int getCount() {
return viewList.size();
}
       //
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
       //装载当前页显示的内容(view)
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(viewList.get(position));
return viewList.get(position);
}
       //销毁已经滑过去的view
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(viewList.get(position));
}
});
}
}

最终效果:

Android ViewPager 用法的更多相关文章

  1. Android ViewPager用法小结

    android-support-v4.jar 是谷歌提供给我们的一个兼容低版本号安卓设备的软件包.里面包囊了仅仅有在 Android 3.0 以上可用的API.而 ViewPager 就是当中之中的一 ...

  2. xamarin android viewpager的用法

    1.什么是ViewPager 通过手势滑动可以完成view的切换,一般是用来app的引导页或则实现图片轮播,类似网页上的banner轮播. Adnroid 3.0后引入的一个UI控件,在xamarin ...

  3. Android Meun 用法

    Android Meun 用法 点击菜单实体键弹出菜单:如下图 main_activity.xml <?xml version="1.0" encoding="ut ...

  4. 【转】android ViewPager,ViewFlipper,ViewFlow实现左右滑动

    转自:http://blog.csdn.net/zhouyuanjing/article/details/8290454 开篇 首页只是作为ViewPager,ViewFlipper,ViewFlow ...

  5. Android ViewPager再探:增加滑动指示条

    上一篇:<Android ViewPager初探:让页面滑动起来> ViewPager只是左右滑动有些丑,也不知道当前位于第几页面. 可以在上方加入滑动指示条,来确定当前位置. 只需要修改 ...

  6. Android ViewPager初探:让页面滑动起来

    下一篇:<Android ViewPager再探:增加滑动指示条> ViewPager需要用到适配器PagerAAdapter,以下四个函数需要重写: instantiateItem(Vi ...

  7. Android ViewPager Fragment使用懒加载提升性能

     Android ViewPager Fragment使用懒加载提升性能 Fragment在如今的Android开发中越来越普遍,但是当ViewPager结合Fragment时候,由于Androi ...

  8. Android Intent 用法全面总结

    [代码全屏查看]-Android Intent 用法全面总结 // [1].[代码] 调用拨号程序 跳至 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] / ...

  9. Android GLSurfaceView用法详解(二)

    输入如何处理       若是开发一个交互型的应用(如游戏),通常需要子类化 GLSurfaceView,由此可以获取输入事件.下面有个例子: java代码: package eoe.ClearTes ...

随机推荐

  1. sap 常用表

    MM    表名 EBAN 采购申请

  2. js中判断true和false的情况

  3. CDN系统对网站的性能有极大的提升

    CDN系统对网站的性能有极大的提升 打开一个网站 我们只是请求了一个页面.单个页面,实际上所有文件都是一个新的请求.以新浪为例一共发起了35个请求. 这35个请求中.只有一个动态内容.其它均为静态.这 ...

  4. 2-2. Initializing Objects with Initializer Lists

    Using Uniform Initialization to Construct a vector #include <iostream> #include <vector> ...

  5. 121. Best Time to Buy and Sell Stock (一) leetcode解题笔记

    121. Best Time to Buy and Sell Stock Say you have an array for which the ith element is the price of ...

  6. java 多态2

    http://www.cnblogs.com/wqq0402/p/6180685.html package test05; public class DuoTai_Test02 { /**多个对象,一 ...

  7. Linux的学习之路

    linux的安装配置.常用命令: 基本上学习任务: 1.在VMware(9)虚拟机上安装Linux操作系统(安装CentOs操作系统) 2.了解Linux操作系统 3.通过XShell工具操作Linu ...

  8. SGA(System Global Area)

    系统激活时在内存内规划的一个固定的区域,用于存储每位使用者所需存取的数据和必备的系统信息.这个区域成为系统全局区. 数据块缓存区:存放读取数据文件的数据块副本,或者曾经处理过的数据.有效减少读取数据时 ...

  9. linux搞大头,bang bang bang

    偶遇网站打不开,人懵逼了,然后各种查询资料,查到可能跟服务器的问题有关,于是乎连接linux服务器,开始一段苦逼旅程. 其实主要是一些简单的linux命令,对我这个没怎么接触linux的小白来说,何等 ...

  10. html5新特性之画布

    1.canvas的理解 canvas是一个矩形区域,在这个区域内,通过js可以对区域内的每一帧像素控制 2.js操作canvas对象 canvas对象.getContext("2d" ...