mirror of
https://github.com/leaf-wai/StackLayoutManager.git
synced 2026-03-14 08:42:50 +08:00
3.9 KiB
3.9 KiB
StackLayoutManager
一个实现了RecyclerView.LayoutManager的 Android 库,它能提供卡堆式展示效果。
Overview
StackLayoutManager 有以下优点:
- 高性能: 底层利用缓存机制,循环利用滑出屏幕之外的视图,提高视图渲染效率,避免连续滑动后造成的OOM现象。
- 灵活性: 支持向上、向下、向左、向右四个滑动方向的配置。
- 高自定义性: 支持自定义动画、布局效果,只需要继承StackAnimation或StackLayout即可。
- 容易使用: 只需要创建StackLayoutManager对象,赋值给RecyclerView对象即可。
Gradle integration
如果你使用 Gradle,你可以在 gradle 文件中添加以下依赖:
dependencies {
implementation 'com.littlemango:stacklayoutmanager:1.0.5'
}
基础使用
最简单的使用方法是直接调用StackLayoutManager的无参构造器实例化对象之后赋值给RecyclerView,默认的滑动方向是从右往左。
StackLayoutManager manager = new StackLayoutManager();
recyclerView.setLayoutManager(manager);
高级使用
- 你可以选择子控件滑出的方向:
//orientation can be one of ScrollOrientation.BOTTOM_TO_TOP or TOP_TO_BOTTOM or RIGHT_TO_LEFT or LEFT_TO_RIGHT
ScrollOrientation orientation = ScrollOrientation.BOTTOM_TO_TOP
StackLayoutManager manager = new StackLayoutManager(orientation);
recyclerView.setLayoutManager(manager);
- 你可以设置在静止时可以看到的子视图的最大数量:
//在构造方法中指定可见数量
StackLayoutManager manager = new StackLayoutManager(ScrollOrientation.BOTTOM_TO_TOP, 3);
//或者在稍后的设置方法中修改
manager.setVisibleItemCount(3);
- 你能修改子控件之间的间隔数值:
manager.setItemOffset(50);
- 你可以选择平滑还是立即滚动到指定位置,使用方法和其它 RecyclerView 一样,直接调用其相应方法:
//平滑的滚动到指定位置
recyclerView.smoothScrollToPosition(3);
//立即滚动到指定位置,没有动画效果
recyclerView.scrollToPosition(3);
- 你可以设置像 ViewPager 一样的翻页模式,或者是普通的连续滚动模式:
manager.setPagerMode(true or false);
- 当处于 ViewPager 翻页模式下,你可以设置触发翻页效果的最小滑动速度:
manager.setPagerFlingVelocity(3000);
- 为 StackLayoutManager 增加一个 item 位置变化时的回调:
mStackLayoutManager.setItemChangedListener(new StackLayoutManager.ItemChangedListener() {
@Override
public void onItemChanged(int position) {
mToast.setText("first visible item position is " + position);
mToast.show();
}
});
- 如果你想自己实现动画效果,那么你可以继承自StackAnimation来定制动画效果,默认提供了DefaultAnimation作为默认动画类:
DefaultAnimation animation = new DefaultAnimation(ScrollOrientation.BOTTOM_TO_TOP, visibleCount);
manager.setAnimation(animation);
- 如果你想自己实现布局效果,那么你可以继承自StackLayout来定制布局效果,默认提供了DefaultLayout作为默认布局类:
StackLayoutManager manager = new StackLayoutManager(ScrollOrientation.BOTTOM_TO_TOP,
visibleCount,
DefaultAnimation.class,
DefaultLayout.class);
Sample
你可以克隆或者下载该工程到电脑上,运行安装应用到手机上即可查看例子.
或者,你可以扫码安装示例APK:
License
MIT License See MIT License


