Android ViewPager 应该及技巧

1.   android 中的ViewPager 功能类似于iOS中的scrollView,实现最主要的页面的左右滑动功能。该类存在于Google的兼容包里面,所以在引用时记得在BuilldPath中增加“android-support-v4.jar”

2.  在实现中ViewPager须要绑定一个适配器(Adapter)。在适配器中返回页面view的个数及详细的形式。这个就类似于iOS中tableView的实现,必须实现UITableView代理中的 numberOfCell 跟CellForRow,一个用于返回共同拥有多少数据,还有一个用于返回每一条详细的数据。

3. ViewPager 通常与Fragment一起使用。

在ViewPager中增加多fragment(页面) 来实现左右的滑动。

4.看个最简单的ViewPager的代码:   如果我们如今已经有三个Fragment ,他们的背影颜色分别为red,green, blue。

1) 我们在xml 文件里加入一个ViewPager,代码例如以下

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MyActivity">

   <android.support.v4.view.ViewPager
       android:id="@+id/mViewPager"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       >
   </android.support.v4.view.ViewPager>

</RelativeLayout>

2)在activtiy .java中使用此ViewPager.如今我们有了ViewPager了,还须要一个Adapter,通常我们继承FragmentPagerAdapter来自己定义我们的Adapter以便重写返回个数及Item的函数。在Adaoter 中定义一个数组,里面添加上面的Fragment(假设想动态添加留个添加的接口就ok),代码例如以下

    public static class TabAdapter extends FragmentPagerAdapter implements ViewPager.OnPageChangeListener {

        private   ArrayList<Fragment> frg = new ArrayList<Fragment>();

        public TabAdapter(FragmentManager fm) {
            super(fm);

            CountingFragment f1 = new CountingFragment();
            frg.add(f1);

            CursorFragment   f2 = new CursorFragment();

            frg.add(f2);
            FragmentPagerSupport f3 = new FragmentPagerSupport();

            frg.add(f3);
            notifyDataSetChanged();
        }

        @Override
        public Fragment getItem(int i) {

            return frg.get(i);
        }

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

        @Override
        public void onPageScrolled(int i, float v, int i2) {

        }

        @Override
        public void onPageSelected(int i) {

        }

        @Override
        public void onPageScrollStateChanged(int i) {

        }

    }

}

为了监听ViewPager
移动变化的事件。我们实现了ViewPager.OnPageChangeListener 。它的实现三个函数看名字就知道什么意思了。

getCount 返回ViewPager 的Fragment的数量。getItem 返回每一个位置的Item。

3) 关联ViewPgaer跟Adapter

        mViewPager = (ViewPager)findViewById(R.id.mViewPager);

        mTabAdapter = new TabAdapter(getSupportFragmentManager());

        mViewPager.setAdapter(mTabAdapter);

getSupportFragmentManager 返回一个Fragment的管理器,是FragmentPagerAdapter的要求參数。

经过上面的步骤我们就实现了一个简单的能够左右滑动的ViewPager。

一些属性的介绍

  • 当我们有须要用按键去控制ViewPager的左右滑动时。使用属性

    boolean arrowScroll(int
    direction)        向前翻页參数传1,向后翻页參数传2
  • 让ViewPager不响应滑动的切换事件。如让嵌套的子ViewPager不响应滑动切换事件,仅仅是响应点击切换事件,将滑动事件交给父ViewPager处理。,使用
boolean canScrollHorizontally(int
direction)

Check if this view can be scrolled horizontally in a certain direction.

@Override
    public boolean canScrollHorizontally(int direction) {
        // TODO Auto-generated method stub
        return false;
    }  
时间: 2024-10-24 23:43:48

Android ViewPager 应该及技巧的相关文章

Android——ViewPager+Fragment+ListView之间

Android--ViewPager+Fragment+ListView之间 <span style="font-size:18px;">package com.example.jreduch05; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.support.v7.app.A

Android Studio常用操作技巧

这段时间一直在用Android Studio做一些Demo的开发,一开始从Eclipse中转向这个开发工具,各种不适应,希望此博文可以一直更新,还有网友可以分享出自己方便更好更快开发的一些技巧. 首先我讲一些经常用到的快捷键吧,网上很多都只说一个大概,很模糊,也不知道什么时候才会用到.我们尽量让这篇博文有作用而不是纯粹的Copy吧! 虽然说Android Studio可以直接一键把所有快捷键设置成Eclipse的快捷键,但是想到你身边的同事,有可能不一定会设置成Eclipse,这样有的时候你如果

最强 Android Studio 使用小技巧和快捷键【非原创】

(发现本文是个很不错的文章,相当实用,特分享与大家.分享自:http://m.open-open.com/m/lib/view/1458715872710.html 特此声明,好记性不如烂笔头,market下来以备后用) 原文如下: 写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本文将这62个小技巧分为常用技巧(1 – 28).编码技巧(29 –

Android课程---Android Studio使用小技巧:提取方法代码片段

这篇文章主要介绍了Android Studio使用小技巧:提取方法代码片段,本文分享了一个快速复制粘贴方法代码片段的小技巧,并用GIF图演示,需要的朋友可以参考下 今天来给大家介绍一个非常有用的Studio Tips,有些时候我们在一个方法内部写了过多的代码,然后想要把一些代码提取出来再放在一个单独的方法里,通常我们的做法是复制粘贴,现在我来教给大家一个非常简洁的方法,先看下gif演示吧:

Android–ViewPager切换动画,PageTransformer

transformPage(View view, float position) view就是滑动中的那个view,position这里是float类型,是当前滑动状态的一个表示,比如当滑动到正全屏时,position是0,如果前一页和下一页基本各在屏幕占一半时,前一页的position是-0.5,后一页的posiotn是0.5(是-0.5还是0.5要看当前的view是前面那一页的view还是后面那一页的),所以根据position的值我们就可以自行设置需要的alpha,x/y信息,就是可以用s

android ViewPager左右滑动翻页,并可以删除page

首先新建一个Activity,继承FragmentActivity. 初始化一个Fragment的List集合,用于像FragmentStatePagerAdapter填充数据,而ViewPager由FragmentStatePagerAdapter的实例进行初始化.和ListView一样,Fragment的List集合的数据变了,就通知FragmentStatePagerAdapter进行界面刷新. ArrayList<Fragment> fragments =new ArrayList&l

android 内存泄漏分析技巧

java虚拟机运行一般都有一个内存界限,超过这个界限,就会报outofmemory.这个时候一般都是存在内存泄漏.解决内存泄漏问题,窃以为分为两个步骤:分析应用程序是否真的有内存泄漏,找到内存泄漏的地方.这两个步骤都不是一般意义上的调试,直接打log,断点调试都不是太给力.动脑筋想一想,内存问题应该在很多地方上都会出现,这么常见的问题应该是有工具的.android现在更可以说是一个生态系统,当然也有很多开发辅助工具.在前面的两个步骤中都有很强大的武器,熟练的掌握这些利器,分析问题就会事半功倍.

android ViewPager详解

Viewpager 在android界面布局中属于常用类型 ,它可以做导航,页面菜单,进入软件是的欢迎界面 等等.比现在最流行的几款手机软件  ,QQ,微信,微博 等 ,其主界面 都用到了ViewPager,所以学好它,势在必得 ,在这里总结了下, 先用图解 : 这是一个仿微博界面的xml布局 ,他们之间的关系经常搞混淆,怕记不住 ,总结了几句话:ViewPager里面含界面,它的改变控制(title)Imageview的变化,Textview控制页面,并间接控制Title(imageview)

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

?? Android ViewPager Fragment使用懒加载提升性能 Fragment在如今的Android开发中越来越普遍,但是当ViewPager结合Fragment时候,由于Android ViewPager内在的加载机制,导致一个比较严重的加载性能问题,具体来说,假设一个ViewPager中有n多个Fragment,那么ViewPager在初始化阶段将一次性的初始化FragmentPagerAdapter中的至少3个Fragment(如果Fragment多于3),创建和加载Fra