/LitePager

LitePager,一个轻量级的ViewPager,仿新版网易云歌单广场

Primary LanguageKotlinApache License 2.0Apache-2.0

LitePager,一个轻量级的ViewPager,仿新版网易云歌单广场

使用方式:

添加依赖:

implementation 'com.wuyr:litepager:1.2.1'

APIs:

Method Description
addViews(int... layouts) 批量添加子View
addViews(View... views) 批量添加子View
setSelection(View target) 选中指定子View
setSelection(int index) 根据索引选中子View
setOrientation(int orientation) 设置方向(默认: ORIENTATION_HORIZONTAL):
ORIENTATION_HORIZONTAL(水平)
ORIENTATION_VERTICAL(垂直)
setFlingDuration(long duration) 设置动画的时长
setTopScale(float scale) 设置顶层缩放比例
setTopAlpha(float alpha) 设置顶层不透明度
setMiddleScale(float scale) 设置中层缩放比例
setMiddleAlpha(float alpha) 设置中层不透明度
setBottomScale(float scale) 设置底层缩放比例
setBottomAlpha(float alpha) 设置底层不透明度
setOnScrollListener(OnScrollListener listener) 设置滚动状态监听:
STATE_IDLE(静止状态)
STATE_DRAGGING_LEFT(向左拖动)
STATE_DRAGGING_RIGHT(向右拖动)
STATE_DRAGGING_TOP(向上拖动)
STATE_DRAGGING_BOTTOM(向下拖动)
STATE_SETTLING_LEFT(向左调整)
STATE_SETTLING_RIGHT(向右调整)
STATE_SETTLING_TOP(向上调整)
STATE_SETTLING_BOTTOM(向下调整)
setOnItemSelectedListener(SelectedListener listener) 设置子View被选中的监听
getSelectedChild() 获取当前选中的子View

Attributes:

Name Format Description
orientation enum (默认: horizontal)
horizontal(水平)
vertical(垂直)
方向
flingDuration integer 动画时长
topScale float (默认: 1) 设置顶层缩放比例
topAlpha float (默认: 1) 设置顶层不透明度
middleScale float (默认: 0.8) 设置中层缩放比例
middleAlpha float (默认: 0.4) 设置中层不透明度
bottomScale float (默认: 0.6) 设置底层缩放比例
bottomAlpha float (默认: 0.2) 设置底层不透明度

添加子View方式:

XML

    <com.wuyr.litepager.LitePager
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <View
            android:layout_width="150dp"
            android:layout_height="200dp"
            android:background="#F00" />

        <View
            android:layout_width="150dp"
            android:layout_height="200dp"
            android:background="#0F0"/>

        <View
            android:layout_width="150dp"
            android:layout_height="200dp"
            android:background="#00F"/>
    </com.wuyr.litepager.LitePager>

或者

    LitePager litePager = ...;
    View child1 = ...;
    View child2 = ...;
    View child3 = ...;
    //直接添加子View
    litePager.addViews(child1, child2, child3);
    
    //或者通过布局添加
    litePager.addViews(R.layout.view_child1, R.layout.view_child2, R.layout.view_child3);

Demo下载: app-debug.apk

效果 (图1为网易云原效果):

preview preview preview preview