MultiViewPager

介绍:

MultiViewPager 是根据support-v4 中ViewPager 控件改造而来,它可以让ViewPager一次显示更宽或者更窄的内容,它很好的处理了page之间的位置关系,能保证每次被选中的page显示在中间。

运行效果:

使用说明:

直接将MultiViewPager放入布局文件中

<com.pixplicity.multiviewpager.MultiViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_marginTop="16dp"
    android:layout_weight="1"
    app:matchChildWidth="@+id/child_view_to_match" />

注意要声明命名空间:

xmlns:app="http://schemas.android.com/apk/res-auto"

MultiViewPager使用的特别之处是matchChildWidth属性,`matchChildWidth`的值需要和ViewPager的第一个子view的id相同,在例子程序中,page的布局为:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >
    <FrameLayout
        android:id="@+id/vg_cover"
        android:layout_width="200dp"
        android:layout_height="match_parent"
        android:layout_centerInParent="true" >
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
            android:background="@drawable/bg_page"
            android:scaleType="centerInside"
            android:src="@drawable/im_pixplicity"
            tools:ignore="ContentDescription" />
    </FrameLayout>
</RelativeLayout>

因此MultiViewPager的`matchChildWidth`属性就为@id/vg_cover:

<com.pixplicity.multiviewpager.MultiViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_marginTop="16dp"
    android:layout_weight="1"
    app:matchChildWidth="@+id/vg_cover" />

 这样,它就知道如何为page分配大小。

已下载
0