From 842ab63f4f3915e8b67651145a4688d7063623d3 Mon Sep 17 00:00:00 2001 From: Little Mango <244261996@qq.com> Date: Wed, 4 Jul 2018 23:18:10 +0800 Subject: [PATCH] update readme --- README.md | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) diff --git a/README.md b/README.md index 04ffc52..d028766 100644 --- a/README.md +++ b/README.md @@ -1 +1,110 @@ # StackLayoutManager +-------- + +Android library that provides A RecyclerView.LayoutManager implementation which provides functionality to show a group of stack view. + +Overview +-------- +![IMG](gif/sample1.gif) +![IMG](gif/sample2.gif) +**StackLayoutManager** provides the following advantages: + +* **High performance**: the bottom layer use the recyclerView recycle mechanism to allow you to display a large number of itemviews without OOM. +* **Flexibility**: you can choose which direction the card will slide out, and there are four directions to choose. +* **Hight customization**: if you want to implement animation and layout yourself, you can inherit *StackAnimation* or *StackLayout* to achieve the desired effect. +* **Easy to use**: you can start using it right away. All you need to do +is to drop the JAR file into your project and replace *LinearLayoutManager* object in your code by *com.littlemango.stacklayoutmanager.StackLayoutManager* + +Gradle integration +------------------ + +If you're using Gradle, you can declare this library as a dependency: + +```groovy +dependencies { + implementation 'com.littlemango:stacklayoutmanager:1.0.1' +} +``` + +Basic usage +----------- + +The simplest way to use **StackLayoutManager** is by dropping the library JAR file into your project +creating the *StackLayoutManager* object and pass it back to the RecyclerView object: + +```java +StackLayoutManager manager = new StackLayoutManager(); + +recyclerView.setLayoutManager(manager); +``` + +Advanced usage +-------------- + +1. You can set the orientation of the card to slide out of the screen: + +```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. You can set the visible item count: +```java +//in the construction method +StackLayoutManager manager = new StackLayoutManager(ScrollOrientation.BOTTOM_TO_TOP, 3); + +//or in setter method +manager.setVisibleItemCount(3); +``` + +3. You can change the offset between items: + +```java +manager.setItemOffset(50); +``` + +4. You can scroll smoothly or immediately to the specified position: +```java +//scroll to position with animation +recyclerView.smoothScrollToPosition(3); + +//scroll to position immediately without animation +recyclerView.scrollToPosition(3); +``` +5. You can set the view to turn only one page at a time, like a ViewPager, or you can turn pages continuously: +```java +manager.setPagerMode(true or false); +``` + +6. When in PagerView paging mode, you can set the minimum sliding velocity that triggers the paging effect: +```java +manager.setPagerFlingVelocity(3000); +``` + +7. I use the DefaultAnimation class to provide animation, which is inherited from StackAnimation, and you can inherit both classes to achieve the desired animation effect: +```java +DefaultAnimation animation = new DefaultAnimation(ScrollOrientation.BOTTOM_TO_TOP, visibleCount); +manager.setAnimation(animation); +``` +8. I use the DefaultLayout class to implement the layout of items, which inherits from StackLayout. You can inherit both classes to achieve the layout effect you want: +```java +StackLayoutManager manager = new StackLayoutManager(ScrollOrientation.BOTTOM_TO_TOP, + visibleCount, + DefaultAnimation.class, + DefaultLayout.class); +``` + +Sample +------- +You can clone or download this project to your computer and install **sample** apk on your phone to see the effect. + +License +------- +MIT License +See [MIT License][License] website. + +[License]: https://www.mit-license.org