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. iOS9系统分享失败问题解决

    因为iOS9系统需要设置打开QQ和微信的白名单,如果出现无法分享或者直接提示分享失败,试一下在infoPlist中添加以下白名单 http://wiki.mob.com/ios9-对sharesdk的 ...

  2. android studio serialversionuid设置

  3. 网络-->监控-->OID-->BGP

    说明:暂时发现只适合cisco设备,h3c的交换机只支持部分OID(支持版本.AS号.ROUTER-ID)

  4. nerual style 执行命令

    python neural_style.py --content ./examples/4-content.jpg --styles ./examples/4-faguo-style.jpg --ou ...

  5. 金蝶EAS BOS上如何打补丁

    主要分为2种方式,直接通过BOS管理平台,去安装补丁 另一种方式就是通过本地zip压缩包去打补丁,以我的安装目录包为例路径为:E:\kingdee\kingserver\eas\admin\patch ...

  6. 2-5. Working with Compile Time Constants

    #include <array> #include <cstdint> #include <iostream> class MyClass { private: u ...

  7. Oracle 中的作业队列和队列调度

    一,启动执行作业的进程       在 Oracle 中,是使用 “作业队列协调进程(CJQ0)” 这个协调数据库实例的作业队列的后台进程,来监视作业队列中的作业表(JOB$),并启动作业队列进程(J ...

  8. Android框架之AndroidAnnotations实战

    方案一: 下载 androidannotations-bundle-3.3.2.zip 方案二:   楼主选用开发环境:android studio 新建项目  修改app 下的build.gradl ...

  9. 快快快!27个提升效率的iOS开源库推荐

    文章来源:http://www.csdn.net/article/2015-07-21/2825264-27-ios-open-source-libraries/1 我热爱开源,更喜爱那些花费宝贵的业 ...

  10. ckeditor使用

    安装: 下载CKEDITOR的文件,解压后复制到工程的WEBROOT目录下就OK! 引用CKEDITOR的JS文件: 新建JSP页面,添加其JS文件<script type="text ...