From e6dc66a7ca9dd4a3606b45c55a08910af237aff0 Mon Sep 17 00:00:00 2001 From: Little Mango <244261996@qq.com> Date: Thu, 5 Jul 2018 10:32:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=20=E4=B8=AD=E6=96=87=20READM?= =?UTF-8?q?E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README_CN.md | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 README_CN.md diff --git a/README_CN.md b/README_CN.md new file mode 100644 index 0000000..3b4fab0 --- /dev/null +++ b/README_CN.md @@ -0,0 +1,111 @@ +# StackLayoutManager +-------- + +一个实现了RecyclerView.LayoutManager的 Android 库,它能提供卡堆式展示效果。 + +![IMG](gif/sample1.gif) +![IMG](gif/sample2.gif) + +Overview +-------- + +**StackLayoutManager** 有以下优点: + +* **高性能**: 底层利用缓存机制,循环利用滑出屏幕之外的视图,提高视图渲染效率,避免连续滑动后造成的OOM现象。 +* **灵活性**: 支持向上、向下、向左、向右四个滑动方向的配置。 +* **高自定义性**: 支持自定义动画、布局效果,只需要继承*StackAnimation*或*StackLayout*即可。 +* **容易使用**: 只需要创建*StackLayoutManager*对象,赋值给*RecyclerView*对象即可。 + +Gradle integration +------------------ + +如果你使用 Gradle,你可以在 gradle 文件中添加以下依赖: + +```groovy +dependencies { + implementation 'com.littlemango:stacklayoutmanager:1.0.1' +} +``` + +基础使用 +----------- + +最简单的使用方法是直接调用*StackLayoutManager*的无参构造器实例化对象之后赋值给*RecyclerView*,默认的滑动方向是从右往左。 + +```java +StackLayoutManager manager = new StackLayoutManager(); + +recyclerView.setLayoutManager(manager); +``` + +高级使用 +-------------- + +1. 你可以选择子控件滑出的方向: + +```java +//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); +``` + +2. 你可以设置在静止时可以看到的子视图的最大数量: +```java +//在构造方法中指定可见数量 +StackLayoutManager manager = new StackLayoutManager(ScrollOrientation.BOTTOM_TO_TOP, 3); + +//或者在稍后的设置方法中修改 +manager.setVisibleItemCount(3); +``` + +3. 你能修改子控件之间的间隔数值: + +```java +manager.setItemOffset(50); +``` + +4. 你可以选择平滑还是立即滚动到指定位置,使用方法和其它 RecyclerView 一样,直接调用其相应方法: +```java +//平滑的滚动到指定位置 +recyclerView.smoothScrollToPosition(3); + +//立即滚动到指定位置,没有动画效果 +recyclerView.scrollToPosition(3); +``` +5. 你可以设置像 ViewPager 一样的翻页模式,或者是普通的连续滚动模式: +```java +manager.setPagerMode(true or false); +``` + +6. 当处于 ViewPager 翻页模式下,你可以设置触发翻页效果的最小滑动速度: +```java +manager.setPagerFlingVelocity(3000); +``` + +7. 如果你想自己实现动画效果,那么你可以继承自*StackAnimation*来定制动画效果,默认提供了[DefaultAnimation][DefaultAnimation]作为默认动画类: +```java +DefaultAnimation animation = new DefaultAnimation(ScrollOrientation.BOTTOM_TO_TOP, visibleCount); +manager.setAnimation(animation); +``` +8. 如果你想自己实现布局效果,那么你可以继承自*StackLayout*来定制布局效果,默认提供了[DefaultLayout][DefaultLayout]作为默认布局类: +```java +StackLayoutManager manager = new StackLayoutManager(ScrollOrientation.BOTTOM_TO_TOP, + visibleCount, + DefaultAnimation.class, + DefaultLayout.class); +``` + +Sample +------- +你可以克隆或者下载该工程到电脑上,运行安装应用到手机上即可查看例子. + +License +------- +MIT License +See [MIT License](LICENSE) + +[DefaultLayout]: StackLayoutManager/src/main/java/com/littlemango/stacklayoutmanager/DefaultLayout.kt +[DefaultAnimation]: StackLayoutManager/src/main/java/com/littlemango/stacklayoutmanager/DefaultAnimation.kt