我们先来谷歌官方文档对viewpager的介绍,该类允许用户通过页面翻转左右的数据,需要通过实现PagerAdapter适配器来生成视图显示的页面。因为注意这个类是早期设计和开发的,API可能会改变,并在以后更新兼容库,到时候我们需要做相应的处理。ViewPager最常用于结合Fragment,这是一个方便的方式来供应和管理每个页面的生命周期,我们后面的博客介绍相关的内容,今天我们先来简单实现viewpager的功能。

MainAcitivity的代码

package com.example.f10_viewpager;import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;public class MainActivity extends Activity {private View view1, view2, view3;// 需要滑动的页卡private ViewPager viewPager;private PagerTabStrip pagerTabStrip;private List<View> viewList;// 把需要滑动的页卡添加到这个list中private List<String> titleList;// viewpager的标题@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 像普通控件一样先初始化viewPager = (ViewPager) findViewById(R.id.viewpager);pagerTabStrip = (PagerTabStrip) findViewById(R.id.pagertab);pagerTabStrip.setDrawFullUnderline(false);//设置下划线不整页显示pagerTabStrip.setTextSpacing(1000);//设置标题之间的距离initView();MyAdapter pagerAdapter = new MyAdapter();viewPager.setAdapter(pagerAdapter);}//填充布局,设置每一页的标题private void initView() {view1 = findViewById(R.layout.layout1);view2 = findViewById(R.layout.layout2);view3 = findViewById(R.layout.layout3);viewList = new ArrayList<View>();// 将要分页显示的View装入数组中viewList.add(view1);viewList.add(view2);viewList.add(view3);titleList = new ArrayList<String>();// 每个页面的Title数据titleList.add("第一个页面");titleList.add("第二个页面");titleList.add("第三个页面");}public class MyAdapter extends PagerAdapter {@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0 == arg1;}@Overridepublic int getCount() {return viewList.size();}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView(viewList.get(position));}@Overridepublic int getItemPosition(Object object) {return super.getItemPosition(object);}@Overridepublic CharSequence getPageTitle(int position) {return titleList.get(position);}// 将每一页的布局填充如ViewGroup容器中@Overridepublic Object instantiateItem(ViewGroup container, int position) {container.addView(viewList.get(position));return viewList.get(position);}};}

在我之间浏览博文的时候,有人提到过第30行代码设置标题的距离效果没有实现,不知道为什么,后来我调试了一下,发现应该是这个值要设置的大一些,我这里设置的就是1000就实现了一个页面只显示一个标题的效果。在layout布局文件下,我们首先得先创建三个简单的布局文件,来实现滑动效果,当然最重要的是main.xml的代码书写

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  android:orientation="vertical" >  <android.support.v4.view.ViewPager  android:id="@+id/viewpager"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_gravity="center" >  <android.support.v4.view.PagerTabStrip    android:id="@+id/pagertab"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_gravity="top"/>   </android.support.v4.view.ViewPager>  </LinearLayout> 

Android开发之ViewPager滑动页面效果实现(源代码分享)相关推荐

  1. Android开发之WebView的开发使用(源代码分享)

    如果我们想提供一个web应用程序(或只是一个网页)作为客户端应用程序的一部分,我们可以使用WebView.WebView类是Android的视图类的扩展,它允许您显示web页面的一部分活动布局.担它不 ...

  2. Android开发之Handler的使用方法(源代码分享)

    Handler主要接受子线程发送的数据, 并用此数据配合主线程更新UI.. 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发.比 ...

  3. Android开发之ViewPager+ActionBar+Fragment实现响应式可滑动Tab

    今天我们要实现的这个效果呢,在Android的应用中十分地常见,我们可以看到下面两张图,无论是系统内置的联系人应用,还是AnyView的阅读器应用,我们总能找到这样的影子,当我们滑动屏幕时,Tab可以 ...

  4. android中viewpager+fragment,Android开发之ViewPager+Fragment

    使用步骤 1.Activity的布局文件 android:id="@+id/viewpager" android:layout_width="wrap_content&q ...

  5. Android开发之ViewPager结合Fragment实现滑动页面的效果(源代码分享)

    前段日子的博客有介绍过关于ViewPager的使用,发现大家对那篇博客都情有独钟,今天我们就在来看一下ViewPager在Fragment中的使用吧,因为ViewPager是在补丁包中添加的低版本的包 ...

  6. android togglebutton 动画,Android开发之ToggleButton实现开关效果示例

    本文实例讲述了Android使用ToggleButton实现开关效果的方法.分享给大家供大家参考,具体如下: activity_main.xml android:layout_width=" ...

  7. Android开发之RecyclerView滑动到底部的监听方法

    Kotlin版本 recyclerview.addOnScrollListener(object: RecyclerView.OnScrollListener() {override fun onSc ...

  8. android md5加密登录,Android开发之MD5加密

    将字符串进行MD5加密,返回加密后的字符串 public static String encode(String password) { try { StringBuffer sb = new Str ...

  9. Android studio实现底部导航,Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果...

    BottomBar BottomBar是Github上的一个开源框架,因为从1.3.3开始不支持fragments了,要自己配置,弄了很久,不管是app的fragment还是V4 的程序总是总是闪退. ...

最新文章

  1. qt 拖拽 修改大小(二)
  2. Java黑皮书课后题第7章:7.14(计算gcd)编写方法,返回个数不确定的整数的最大公约数。编写一个测试程序,提示用户输入5个数字,调用该方法找出这些数的最大公约数,并显示这个最大公约数
  3. Vuejs-踩坑/注意事项记录
  4. js将json数据保存到本地
  5. java 单例 实现_java 实现单例的各种方式
  6. macos 此服务器的证书无效_网易出现重大失误,忘记续费HTTPS证书导致大量用户受影响...
  7. linux ----Inode的结构图
  8. ShutIt:一个基于Python的shell自动化框架
  9. jmeter分布式步骤
  10. Drawbot赋能商家: 智能助手主打上新详情
  11. IntelliCAD 2009 Pro Plus v6.4.23.2 1CD
  12. Python3优雅操作-时间处理与定时任务
  13. 使用oledb读写excel出现“操作必须使用一个可更新的查询”的解决办法
  14. 车载一体机凯立德导航升级
  15. 企业实现均衡生产,车间管理系统来支持
  16. 林中鸟计算机弹奏,用现象证实现象这叫复试,计算机的计算只是计算,与经络的现象无关。气感循行...
  17. 七个关键心理学(4)沉没成本
  18. Vue2.0 饿了么报错: Unexpected side effect in lis tShow computed property
  19. 互联网金融监管细则即将出台 P2P行业格局已定
  20. AT91Sam9260的网卡驱动

热门文章

  1. oracle入门知识实施,新手必须了解的oracle入门知识
  2. redis实现轮询算法_用redis实现支持优先级的消息队列
  3. 电脑服务器怎么打开网页,电脑的iis服务器打开网页的方法
  4. matlab“机器学习和深度学习”系列工具箱作用总结
  5. 记录一下提取文件夹中所有文件名字
  6. MFC程序在控制台输出的实现
  7. 生成,保存和转换pcd点云文件
  8. solidworks完全卸载安装高版本
  9. 【PHP 开发】mac 下配置 PHP 环境的方法
  10. C++ cin.ignore()用法