├── demo ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── values │ │ │ │ ├── strings.xml │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ ├── drawable-xhdpi │ │ │ │ ├── up.png │ │ │ │ └── down.png │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_round.png │ │ │ │ └── ic_launcher_foreground.png │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_round.png │ │ │ │ └── ic_launcher_foreground.png │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_round.png │ │ │ │ └── ic_launcher_foreground.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_round.png │ │ │ │ └── ic_launcher_foreground.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_round.png │ │ │ │ └── ic_launcher_foreground.png │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── layout │ │ │ │ ├── holder2.xml │ │ │ │ ├── holder4.xml │ │ │ │ ├── holder1.xml │ │ │ │ ├── holder3.xml │ │ │ │ ├── holder5.xml │ │ │ │ └── activity_main.xml │ │ │ └── drawable │ │ │ │ └── ic_launcher_background.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── yu │ │ │ │ └── extended │ │ │ │ └── recyclerview │ │ │ │ └── demo │ │ │ │ ├── bean │ │ │ │ ├── Type1Bean.java │ │ │ │ ├── Type2Bean.java │ │ │ │ ├── Type3Bean.java │ │ │ │ └── Type4Bean.java │ │ │ │ ├── holder │ │ │ │ ├── Type5Holder.java │ │ │ │ ├── Type2Holder.java │ │ │ │ ├── Type4Holder.java │ │ │ │ ├── Type1Holder.java │ │ │ │ └── Type3Holder.java │ │ │ │ └── MainActivity.java │ │ └── AndroidManifest.xml │ └── test │ │ └── java │ │ └── com │ │ └── jd │ │ └── oa │ │ └── extended │ │ └── recyclerview │ │ └── demo │ │ └── ExampleUnitTest.java ├── build.gradle └── proguard-rules.pro ├── extendedRecyclerView ├── .gitignore ├── src │ └── main │ │ ├── res │ │ └── values │ │ │ ├── strings.xml │ │ │ ├── styles.xml │ │ │ └── colors.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── yu │ │ └── bundles │ │ └── extended │ │ └── recyclerview │ │ ├── ExtendedHolderFactory.java │ │ ├── ExtendedRecyclerViewHelper.java │ │ ├── ExtendedHolder.java │ │ ├── ExtendedNode.java │ │ ├── ExtendedRecyclerViewBuilder.java │ │ ├── ExtendedRecyclerAdapter.java │ │ └── ExtendedDataUtils.java ├── build.gradle └── proguard-rules.pro ├── settings.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── me_config.gradle ├── gradle.properties ├── gradlew.bat ├── README.md └── gradlew /demo/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /extendedRecyclerView/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':extendedRecyclerView', ':demo' 2 | -------------------------------------------------------------------------------- /extendedRecyclerView/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /extendedRecyclerView/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demo/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | demo 3 | 4 | -------------------------------------------------------------------------------- /extendedRecyclerView/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /demo/src/main/res/drawable-xhdpi/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/drawable-xhdpi/up.png -------------------------------------------------------------------------------- /demo/src/main/res/drawable-xhdpi/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/drawable-xhdpi/down.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liyuzero/ExtendedRecyclerView/HEAD/demo/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /demo/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Jan 25 16:14:30 CST 2018 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip 7 | -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /extendedRecyclerView/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /demo/src/main/java/com/yu/extended/recyclerview/demo/bean/Type1Bean.java: -------------------------------------------------------------------------------- 1 | package com.yu.extended.recyclerview.demo.bean; 2 | 3 | /** 4 | * Created by liyu20 on 2018/1/9. 5 | */ 6 | 7 | public class Type1Bean { 8 | public String name = "一级菜单"; 9 | 10 | public Type1Bean(int i) { 11 | this.name = i + "-" + name; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /demo/src/main/java/com/yu/extended/recyclerview/demo/bean/Type2Bean.java: -------------------------------------------------------------------------------- 1 | package com.yu.extended.recyclerview.demo.bean; 2 | 3 | /** 4 | * Created by liyu20 on 2018/1/9. 5 | */ 6 | 7 | public class Type2Bean { 8 | public String name = "二级菜单"; 9 | 10 | public Type2Bean(int i) { 11 | this.name = i + "-" + name; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /demo/src/main/java/com/yu/extended/recyclerview/demo/bean/Type3Bean.java: -------------------------------------------------------------------------------- 1 | package com.yu.extended.recyclerview.demo.bean; 2 | 3 | /** 4 | * Created by liyu20 on 2018/1/9. 5 | */ 6 | 7 | public class Type3Bean { 8 | public String name = "三级菜单"; 9 | 10 | public Type3Bean(int i) { 11 | this.name = i + "-" + name; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /demo/src/main/java/com/yu/extended/recyclerview/demo/bean/Type4Bean.java: -------------------------------------------------------------------------------- 1 | package com.yu.extended.recyclerview.demo.bean; 2 | 3 | /** 4 | * Created by liyu20 on 2018/1/9. 5 | */ 6 | 7 | public class Type4Bean { 8 | public String name = "四级菜单"; 9 | 10 | public Type4Bean(int i) { 11 | this.name = i + "-" + name; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /extendedRecyclerView/src/main/java/com/yu/bundles/extended/recyclerview/ExtendedHolderFactory.java: -------------------------------------------------------------------------------- 1 | package com.yu.bundles.extended.recyclerview; 2 | 3 | import android.view.ViewGroup; 4 | 5 | /** 6 | * Created by liyu20 on 2018/1/8. 7 | */ 8 | 9 | public interface ExtendedHolderFactory { 10 | ExtendedHolder getHolder(ExtendedRecyclerViewHelper helper, ViewGroup parent, int viewType); 11 | } 12 | -------------------------------------------------------------------------------- /demo/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /app/proguardMapping.txt 2 | .gradle 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .idea 6 | /local.properties 7 | .DS_Store 8 | /build 9 | build 10 | build/ 11 | # Built application files 12 | *.apk 13 | *.ap_ 14 | # Files for the Dalvik VM 15 | *.dex 16 | # Java class files 17 | *.class 18 | # Generated files 19 | bin/ 20 | gen/ 21 | # Gradle files 22 | .gradle/ 23 | app/rocoofix/ 24 | # Local configuration file (sdk path, etc) 25 | local.properties 26 | # Proguard folder generated by Eclipse 27 | proguard/ 28 | # Log Files 29 | *.log 30 | *.iml 31 | jdme_android.iml 32 | app.iml 33 | welfareplugin/* 34 | ;buildsrc/ 35 | welfareplugin/ 36 | -------------------------------------------------------------------------------- /me_config.gradle: -------------------------------------------------------------------------------- 1 | // gradle配置信息 2 | ext { 3 | VERSION_CODE = 1 4 | COMPILE_SDK_VERSION = 26 // 25 23 5 | BUILD_TOOLS_VERSION = "26.0.1" // 25.0.2 23.0.2 6 | MIN_SDK_VERSION = 14 7 | TARGET_SDK_VERSION = 23 // 这个千万不能改 8 | SUPPORT_VERSION = "26.0.2" 9 | GLIDE_VERSION = '3.7.0' 10 | // support依赖支持包 11 | compile_support = [ 12 | design : "com.android.support:design:${SUPPORT_VERSION}", 13 | annotations : "com.android.support:support-annotations:${SUPPORT_VERSION}", 14 | appcompat : "com.android.support:appcompat-v7:${SUPPORT_VERSION}", 15 | recyclerview: "com.android.support:recyclerview-v7:${SUPPORT_VERSION}" 16 | ] 17 | } -------------------------------------------------------------------------------- /demo/src/main/res/layout/holder2.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 12 | 13 | 19 | 20 | -------------------------------------------------------------------------------- /demo/src/main/res/layout/holder4.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 13 | 14 | 20 | 21 | -------------------------------------------------------------------------------- /demo/src/main/res/layout/holder1.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 13 | 14 | 20 | 21 | -------------------------------------------------------------------------------- /demo/src/main/res/layout/holder3.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 13 | 14 | 20 | 21 | -------------------------------------------------------------------------------- /demo/src/main/res/layout/holder5.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 13 | 14 | 20 | 21 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | org.gradle.jvmargs=-Xmx1536m 13 | 14 | # When configured, Gradle will run in incubating parallel mode. 15 | # This option should only be used with decoupled projects. More details, visit 16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 17 | # org.gradle.parallel=true 18 | -------------------------------------------------------------------------------- /demo/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /demo/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 |