开发者社区> 啊啊啊88jdk> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

ViewPager的使用

简介: ViewPager的使用 效果图 布局 初始化及事件监听 // ViewPager ViewPager mViewPager = (ViewPager) view.
+关注继续查看

ViewPager的使用

效果图

这里写图片描述

布局

<android.support.v4.view.ViewPager
    android:id="@+id/viewpager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:overScrollMode="never"
    android:scrollbars="none" />

初始化及事件监听

// ViewPager
ViewPager mViewPager = (ViewPager) view.findViewById(R.id.viewpager);
// 添加页面变动的监听事件
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
         @Override
         public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

         }

         @Override
         public void onPageSelected(int position) {
             switch (position) {
                 case 0:
                     // TODO 显示了第一页
                     break;
                 case 1:
                     // TODO 显示了第二页
                     break;
             }
         }

         @Override
         public void onPageScrollStateChanged(int state) {

         }
     });

setOnPageChangeListener比较常用,但是提示API已经过时,还可以用addOnPageChangeListener

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

    @Override
    public void onPageSelected(int position) {

    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }
});

填充ViewPager

这里填充两个页面,R.layout.viewpager1R.layout.viewpager2 是ViewPager的两个页面的xml

// 添加页面
ArrayList viewList = new ArrayList<View>();// 将要分页显示的View装入数组中
View viewpagerQuotationBtc = View.inflate(getActivity(), R.layout.viewpager1, null);
View viewpagerQuotationLtc = View.inflate(getActivity(), R.layout.viewpager2, null);
viewList.add(viewpagerQuotationBtc);
viewList.add(viewpagerQuotationLtc);
QuotationPageAdapter quotationDataAdapter = new QuotationPageAdapter(viewList);
viewPager.setAdapter(quotationDataAdapter);

Adapter

package ……;

import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;

import java.util.ArrayList;

/**
 * Created by kongqw on 2015/11/25.
 */
public class QuotationPageAdapter extends PagerAdapter {
    private ArrayList<View> mListViews;

    public QuotationPageAdapter(ArrayList<View> mListViews) {
        this.mListViews = mListViews;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView(mListViews.get(position));
    }


    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        container.addView(mListViews.get(position), 0);
        return mListViews.get(position);
    }

    @Override
    public int getCount() {
        return mListViews.size();
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == object;
    }
}

设置ViewPager显示第几页

// 显示第一页
mViewPager.setCurrentItem(0);

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Swagger的使用(第一个案例)
Swagger的使用(第一个案例)
52 0
使用dropwizard(3)-加入DI-dagger2
前言 习惯了Spring全家桶,对spring的容器爱不释手。使用dropwizard,看起来确实很轻,然而,真正使用的时候不得不面临一个问题。我们不可能一个resource就能把所有的业务逻辑囊括!那么,必然就要有负责处理逻辑的代码,有要提取的公共的代码,要做面向接口开发等等。
970 0
一行代码引入 ViewPager 无限循环 + 页码显示
(出处:http://www.cnblogs.com/linguanh)   前序:   网上的这类 ViewPager 很多,但是很多都不够好,体现在 bug多、对少页面不支持,例如1~2张图片、功能整合不全(无限+页码)等等,本类由我从零到无完成的,基本已找完 bug,注释丰富,方便大家理解。
951 0
ViewPager详解(二)——自动轮播和手动切换完整示例
MainActivity如下: package cn.ww; import android.app.Activity; import android.
1076 0
NestedScrollView嵌套ViewPager
NestedScrollView嵌套ViewPager 效果图 重写ViewPager package com.
2110 0
206
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载