All Projects → wuyr → Litepager

wuyr / Litepager

Licence: apache-2.0
LitePager,一个轻量级的ViewPager,仿新版网易云歌单广场

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Litepager

Drawer Behavior
Drawer behavior is a library that provide an extra behavior on drawer, such as, move view or scaling view's height while drawer on slide.
Stars: ✭ 394 (-30.02%)
Mutual labels:  scale
Pageindicatorview
An page indicator for Android ViewPager
Stars: ✭ 4,498 (+698.93%)
Mutual labels:  viewpager
Escalator
Escalator is a batch or job optimized horizontal autoscaler for Kubernetes
Stars: ✭ 539 (-4.26%)
Mutual labels:  scale
Viewpagercards
ViewPager cards inspired by Duolingo
Stars: ✭ 4,040 (+617.58%)
Mutual labels:  viewpager
Pagetransformerhelp
👍 A PageTransformer library for Android ViewPager,have some Banner styles. ViewPager 实现轮播图、实现卡片切换。
Stars: ✭ 478 (-15.1%)
Mutual labels:  viewpager
Material Viewpagerindicator
Dot-based Android ViewPager indicator with Material Design animations.
Stars: ✭ 511 (-9.24%)
Mutual labels:  viewpager
Viewpagerbottomsheet
Use ViewPagers in Bottom Sheets!
Stars: ✭ 393 (-30.2%)
Mutual labels:  viewpager
Bloom
🌸 HTTP REST API caching middleware, to be used between load balancers and REST API workers.
Stars: ✭ 553 (-1.78%)
Mutual labels:  scale
Banner Slider
Banner slider is an easy to use library for implement image sliders in android apps.
Stars: ✭ 482 (-14.39%)
Mutual labels:  viewpager
Bubbletab
Put some bubble in your tabs and give your apps a supa fresh style !
Stars: ✭ 537 (-4.62%)
Mutual labels:  viewpager
Iogrid
Multiplayer game engine/framework built using SocketCluster and Phaser
Stars: ✭ 455 (-19.18%)
Mutual labels:  scale
Viewpager Transformation
Why use dependencies when you create your own transformations for Viewpager ?
Stars: ✭ 463 (-17.76%)
Mutual labels:  viewpager
Banner
轮播图控件,支持自定义布局,支持两端缩进,类似卡片,支持无限循环和多种主题,可以灵活设置轮播样式、动画、轮播和切换时间、位置、图片加载框架等!
Stars: ✭ 512 (-9.06%)
Mutual labels:  viewpager
Scrollingpagerindicator
Pager indicator inspired by Instagram. Lightweight and easy to set up.
Stars: ✭ 419 (-25.58%)
Mutual labels:  viewpager
Android Viewpager Transformers
A collection of view pager transformers
Stars: ✭ 546 (-3.02%)
Mutual labels:  viewpager
Banner
🔥🔥ViewPager,ViewPager2无限轮播功能。自定义Indicator,支持一屏三页,支持仿魅族banner效果。极其简单的使用方式
Stars: ✭ 393 (-30.2%)
Mutual labels:  viewpager
Dsltablayout
♥️ Android界最万能的TabLayout(不仅仅是TabLayout), 支持任意类型的item, 支持Drawable类型的指示器,智能开启滚动,支持横竖向布局等
Stars: ✭ 489 (-13.14%)
Mutual labels:  viewpager
Ultraviewpager
UltraViewPager is an extension for ViewPager to provide multiple features in a single ViewPager.
Stars: ✭ 5,030 (+793.43%)
Mutual labels:  viewpager
Snaptablayout
Android library for fluid tablayout animation as seen on Snapchat.
Stars: ✭ 547 (-2.84%)
Mutual labels:  viewpager
Citus
Distributed PostgreSQL as an extension
Stars: ✭ 5,580 (+891.12%)
Mutual labels:  scale

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

博客详情: https://blog.csdn.net/u011387817/article/details/89142467

使用方式:

添加依赖:

implementation 'com.wuyr:litepager:1.3.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
setAutoScrollEnable(boolean enable) 设置是否开启自动轮播 (默认: false)
setAutoScrollInterval(long interval) 设置自动轮播的间隔 (默认: 5000 ms)
setAutoScrollOrientation(int orientation) 设置自动轮播的方向(默认: SCROLL_ORIENTATION_LEFT):
SCROLL_ORIENTATION_LEFT(向左滚动)
SCROLL_ORIENTATION_RIGHT(向右滚动)
SCROLL_ORIENTATION_UP(向上滚动)
SCROLL_ORIENTATION_DOWN(向下滚动)
setAdapter(Adapter adapter) 使用Adapter来添加子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) 底层不透明度
autoScroll boolean (默认: false) 是否开启自动轮播
autoScrollInterval float (默认: 5000) 自动轮播的间隔
autoScrollOrientation enum (默认: left)
left(向左滚动)
right(向右滚动)
up(向上滚动)
down(向下滚动)
自动轮播的方向

添加子View方式:

1. 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>

2. 批量添加

    LitePager litePager = ...;
    View child1 = ...;
    View child2 = ...;
    View child3 = ...;

    litePager.addViews(child1, child2, child3);

3. 通过布局添加

    litePager.addViews(
        R.layout.view_child1 
        R.layout.view_child2,
        R.layout.view_child3
    );

4. 设置适配器

示例: Item布局:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="200dp"
    android:layout_height="250dp"
    android:background="@color/colorPrimary">

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textSize="30sp" />
</FrameLayout>

Java代码:

litePager.setAdapter(new Adapter<ViewGroup>() {

    private List<String> mData = new ArrayList<>(Arrays.asList("Item 1", "Item2", "Item3"));

    @Override
    protected ViewGroup onCreateView(@NonNull ViewGroup parent) {
        return (ViewGroup) LayoutInflater.from(parent.getContext()).inflate(R.layout.item_view, parent, false);
    }

    @Override
    protected void onBindView(@NonNull ViewGroup viewGroup, int position) {
        TextView textView = viewGroup.findViewById(R.id.text);
        textView.setText(mData.get(position));
    }

    @Override
    protected int getItemCount() {
        return mData.size();
    }
});

Demo下载: app-debug.apk

库源码地址: https://github.com/Ifxcyr/LitePager

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

preview preview preview preview

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].