├── app ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── values │ │ │ │ ├── strings.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── empty.jpg │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── layout │ │ │ │ ├── item_type_one.xml │ │ │ │ ├── item_type_two.xml │ │ │ │ ├── item_type_three.xml │ │ │ │ ├── item_header.xml │ │ │ │ ├── item_footer.xml │ │ │ │ ├── item_switch_type.xml │ │ │ │ ├── activity_apt_default.xml │ │ │ │ ├── item_type_load_more.xml │ │ │ │ ├── item_fifth.xml │ │ │ │ ├── layout_empty_all.xml │ │ │ │ ├── layout_header.xml │ │ │ │ ├── layout_error.xml │ │ │ │ ├── item_first.xml │ │ │ │ ├── item_fourth.xml │ │ │ │ ├── item_header_img.xml │ │ │ │ ├── item_second.xml │ │ │ │ ├── item_third.xml │ │ │ │ ├── layout_empty.xml │ │ │ │ ├── layout_default_shimmer_header_view.xml │ │ │ │ ├── layout_error_two.xml │ │ │ │ ├── activity_component.xml │ │ │ │ ├── activity_switch_type.xml │ │ │ │ └── activity_open_close.xml │ │ │ ├── values-w820dp │ │ │ │ └── dimens.xml │ │ │ └── drawable │ │ │ │ ├── bg_fifth_bottom_line.xml │ │ │ │ ├── bg_first_bottom_line.xml │ │ │ │ ├── bg_fourth_bottom_line.xml │ │ │ │ ├── bg_second_bottom_line.xml │ │ │ │ ├── bg_third_bottom_line.xml │ │ │ │ └── bg_header.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── crazysunj │ │ │ │ └── multityperecyclerviewadapter │ │ │ │ ├── component │ │ │ │ ├── IEvent.java │ │ │ │ ├── LoadMore.java │ │ │ │ ├── MainHelper.java │ │ │ │ ├── LoadMoreEvent.java │ │ │ │ ├── TypeOne.java │ │ │ │ ├── TypeTwo.java │ │ │ │ ├── TypeThree.java │ │ │ │ ├── ComponentSubject.java │ │ │ │ ├── BaseViewHolder.java │ │ │ │ ├── TypeTwoViewHolder.java │ │ │ │ ├── TypeThreeViewHolder.java │ │ │ │ ├── TypeOneViewHolder.java │ │ │ │ └── MainAdapter.java │ │ │ │ ├── sticky │ │ │ │ ├── FirstStickyItem.java │ │ │ │ ├── FourthStickyItem.java │ │ │ │ ├── SecondStickyItem.java │ │ │ │ ├── ThirdStickyItem.java │ │ │ │ └── StickyItem.java │ │ │ │ ├── constant │ │ │ │ └── Constants.java │ │ │ │ ├── testlevel │ │ │ │ ├── MultiTypeTitleEntity.java │ │ │ │ ├── ItemConvert.java │ │ │ │ ├── LevelLoadingItem.java │ │ │ │ ├── TypeEmptyAllItem.java │ │ │ │ ├── LevelFirstEmptyItem.java │ │ │ │ ├── LevelSecondErrorItem.java │ │ │ │ ├── TypeOneItem.java │ │ │ │ ├── TypeTwoItem.java │ │ │ │ ├── TypeFiveItem.java │ │ │ │ ├── TypeFourItem.java │ │ │ │ ├── LevelFooterItem.java │ │ │ │ ├── TypeThreeItem.java │ │ │ │ ├── LevelTitleItem.java │ │ │ │ ├── LevelThirdItemConvert.java │ │ │ │ ├── LevelSecondItemConvert.java │ │ │ │ └── LevelFirstItemConvert.java │ │ │ │ ├── expand │ │ │ │ ├── OpenCloseItem.java │ │ │ │ ├── LoadingOCEntity.java │ │ │ │ ├── FirstOCEntity.java │ │ │ │ ├── ThirdOCEntity.java │ │ │ │ ├── SecondOCEntity.java │ │ │ │ ├── EmptyOCEntity.java │ │ │ │ ├── ErrorOCEntity.java │ │ │ │ ├── TitleOCEntity.java │ │ │ │ ├── FooterOCEntity.java │ │ │ │ └── OpenCloseAdapterHelper.java │ │ │ │ ├── data │ │ │ │ ├── MyEmptyEntity.java │ │ │ │ ├── MyErrorAndEmptyEmptyEntity.java │ │ │ │ ├── MyErrorEntity.java │ │ │ │ ├── MyErrorAndEmptyErrorEntity.java │ │ │ │ ├── NoStickyEntity.java │ │ │ │ ├── LoadingEntity.java │ │ │ │ ├── ErrorAndEmptyEmptyEntity.java │ │ │ │ ├── ErrorAndEmptyErrorEntity.java │ │ │ │ ├── SimpleEmptyEntity.java │ │ │ │ ├── SimpleErrorEntity.java │ │ │ │ ├── ErrorAndEmptyLoadingEntity.java │ │ │ │ ├── ThirdItem.java │ │ │ │ ├── FirstItem.java │ │ │ │ ├── SecondItem.java │ │ │ │ └── FourthItem.java │ │ │ │ ├── switchtype │ │ │ │ ├── FirstType.java │ │ │ │ ├── ThirdType.java │ │ │ │ ├── FourthType.java │ │ │ │ ├── SecondType.java │ │ │ │ ├── SwtichType.java │ │ │ │ └── SwitchTypeAdapterHelper.java │ │ │ │ ├── helper │ │ │ │ ├── DefaultMultiHeaderEntity.java │ │ │ │ ├── MultiHeaderEntity.java │ │ │ │ └── ShimmerViewHolder.java │ │ │ │ ├── IDUtil.java │ │ │ │ ├── header │ │ │ │ ├── HeaderFirstItem.java │ │ │ │ ├── HeaderThirdItem.java │ │ │ │ ├── HeaderSecondItem.java │ │ │ │ └── HeaderFourthItem.java │ │ │ │ └── MainActivity.java │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── crazysunj │ │ │ └── multityperecyclerviewadapter │ │ │ └── ExampleUnitTest.java │ └── androidTest │ │ └── java │ │ └── com │ │ └── crazysunj │ │ └── multityperecyclerviewadapter │ │ └── ExampleInstrumentedTest.java ├── proguard-rules.pro └── build.gradle ├── sample ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_go.png │ │ │ │ ├── ic_all.png │ │ │ │ ├── ic_bf_1.png │ │ │ │ ├── ic_bf_2.png │ │ │ │ ├── ic_boy.png │ │ │ │ ├── ic_drug.png │ │ │ │ ├── ic_fab.png │ │ │ │ ├── ic_scan.png │ │ │ │ ├── ic_device.png │ │ │ │ ├── ic_fam_doc.png │ │ │ │ ├── ic_healthy.png │ │ │ │ ├── ic_queue.png │ │ │ │ ├── ic_room_1.png │ │ │ │ ├── ic_room_2.png │ │ │ │ ├── ic_room_3.png │ │ │ │ ├── ic_search.png │ │ │ │ ├── ic_back_top.png │ │ │ │ ├── ic_doctor_1.png │ │ │ │ ├── ic_doctor_2.png │ │ │ │ ├── ic_doctor_3.png │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_nutrition.png │ │ │ │ ├── ic_physical.png │ │ │ │ ├── ic_recharge.png │ │ │ │ ├── ic_register.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── values │ │ │ │ ├── dimens.xml │ │ │ │ ├── strings.xml │ │ │ │ └── colors.xml │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── bg_healthy.png │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── drawable │ │ │ │ ├── shape_cursor.xml │ │ │ │ ├── shape_circle_5c93f7.xml │ │ │ │ ├── shape_circle_f7657d.xml │ │ │ │ ├── shape_circle_f9ba43.xml │ │ │ │ ├── shape_bottom_line.xml │ │ │ │ └── shape_top_bottom_line.xml │ │ │ ├── layout │ │ │ │ ├── head_home.xml │ │ │ │ ├── item_footer.xml │ │ │ │ ├── layout_loading_header.xml │ │ │ │ ├── label_tag.xml │ │ │ │ ├── item_head_home.xml │ │ │ │ ├── footer_home.xml │ │ │ │ ├── header_common.xml │ │ │ │ ├── layout_loading.xml │ │ │ │ ├── item_1.xml │ │ │ │ └── item_2.xml │ │ │ └── menu │ │ │ │ └── menu.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── crazysunj │ │ │ │ └── sample │ │ │ │ ├── constant │ │ │ │ └── Constants.java │ │ │ │ ├── base │ │ │ │ └── MutiTypeTitleEntity.java │ │ │ │ ├── util │ │ │ │ ├── SnackBarUtil.java │ │ │ │ └── MD5Util.java │ │ │ │ ├── app │ │ │ │ └── APP.java │ │ │ │ ├── FooterItemFragment.java │ │ │ │ ├── entity │ │ │ │ ├── LoadingEntity.java │ │ │ │ ├── CommonHeadEntity.java │ │ │ │ ├── CommonFooterEntity.java │ │ │ │ ├── ItemEntity2.java │ │ │ │ ├── ItemEntity4.java │ │ │ │ └── ItemEntity3.java │ │ │ │ ├── normal │ │ │ │ ├── Type1Adapter.java │ │ │ │ ├── Type3Adapter.java │ │ │ │ └── Type2Adapter.java │ │ │ │ ├── adapter │ │ │ │ ├── FooterVPAdapter.java │ │ │ │ └── HeadAdapter.java │ │ │ │ └── IDUtil.java │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── crazysunj │ │ │ └── sample │ │ │ └── ExampleUnitTest.java │ └── androidTest │ │ └── java │ │ └── com │ │ └── crazysunj │ │ └── sample │ │ └── ExampleInstrumentedTest.java ├── proguard-rules.pro └── build.gradle ├── component ├── .gitignore └── src │ └── main │ ├── res │ └── values │ │ └── strings.xml │ ├── AndroidManifest.xml │ └── java │ └── com │ └── crazysunj │ └── recycler │ ├── BindLayout.java │ └── CrazyViewHolder.java ├── multitypeadapter ├── .gitignore └── src │ └── main │ ├── AndroidManifest.xml │ └── java │ └── com │ └── crazysunj │ └── multitypeadapter │ ├── holder │ └── Holder.java │ ├── helper │ ├── DataException.java │ ├── RefreshException.java │ ├── AdapterBindException.java │ ├── LoadingConfigEntity.java │ ├── SynAdapterHelper.java │ └── DiffCallBack.java │ ├── adapter │ ├── EmptyEntityAdapter.java │ ├── ErrorEntityAdapter.java │ └── LoadingEntityAdapter.java │ └── entity │ ├── MultiTypeEntity.java │ ├── HandleBase.java │ └── LevelData.java ├── settings.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── .travis.yml ├── gradle.properties ├── config.gradle └── README.md /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /sample/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /component/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /multitypeadapter/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /component/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app', ':multitypeadapter', ':sample', ':component' 2 | -------------------------------------------------------------------------------- /component/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /multitypeadapter/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | MultiTypeRecyclerViewAdapter 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/empty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/app/src/main/res/mipmap-xhdpi/empty.jpg -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_go.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_go.png -------------------------------------------------------------------------------- /sample/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8dp 4 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_all.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_bf_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_bf_1.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_bf_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_bf_2.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_boy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_boy.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_drug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_drug.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_fab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_fab.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_scan.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_device.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_device.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_fam_doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_fam_doc.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_healthy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_healthy.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_queue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_queue.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_room_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_room_1.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_room_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_room_2.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_room_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_room_3.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_search.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | .DS_Store 6 | /build 7 | /captures 8 | .externalNativeBuild 9 | /.gradle/ 10 | /app/build/ 11 | -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_back_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_back_top.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_doctor_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_doctor_1.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_doctor_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_doctor_2.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_doctor_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_doctor_3.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_nutrition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_nutrition.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_physical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_physical.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_recharge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_recharge.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_register.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_register.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxxhdpi/bg_healthy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xxxhdpi/bg_healthy.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crazysunj/MultiTypeRecyclerViewAdapter/HEAD/sample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/component/IEvent.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.component; 2 | 3 | /** 4 | * @author sunjian 5 | * @date 2019-10-18 20:37 6 | */ 7 | public interface IEvent { 8 | } 9 | -------------------------------------------------------------------------------- /sample/src/main/res/drawable/shape_cursor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/sticky/FirstStickyItem.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.sticky; 2 | 3 | /** 4 | * Created by sunjian on 2017/3/30. 5 | */ 6 | 7 | public interface FirstStickyItem extends StickyItem { 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/sticky/FourthStickyItem.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.sticky; 2 | 3 | /** 4 | * Created by sunjian on 2017/3/30. 5 | */ 6 | 7 | public interface FourthStickyItem extends StickyItem { 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/sticky/SecondStickyItem.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.sticky; 2 | 3 | /** 4 | * Created by sunjian on 2017/3/30. 5 | */ 6 | 7 | public interface SecondStickyItem extends StickyItem { 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/sticky/ThirdStickyItem.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.sticky; 2 | 3 | /** 4 | * Created by sunjian on 2017/3/30. 5 | */ 6 | 7 | public interface ThirdStickyItem extends StickyItem { 8 | } 9 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Dec 10 17:50:31 CST 2017 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-5.4.1-all.zip 7 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_type_one.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /multitypeadapter/src/main/java/com/crazysunj/multitypeadapter/holder/Holder.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multitypeadapter.holder; 2 | 3 | import androidx.annotation.Nullable; 4 | 5 | /** 6 | * @author sunjian 7 | * @date 2019-09-11 16:08 8 | */ 9 | public interface Holder { 10 | T apply(@Nullable T data); 11 | } 12 | -------------------------------------------------------------------------------- /sample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Sample 3 | 查看全部 4 | 搜索各种疾病 5 | 我的天 6 | 界面设计版权声明:版权归孙老师所有\n禁止商业使用 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_type_two.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_type_three.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /sample/src/main/java/com/crazysunj/sample/constant/Constants.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.sample.constant; 2 | 3 | /** 4 | * description 5 | *

6 | * Created by sunjian on 2017/7/7. 7 | */ 8 | 9 | public interface Constants { 10 | String FOLD = "点击收回"; 11 | String EXPAND = "查看更多"; 12 | String EMPTY = ""; 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/constant/Constants.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.constant; 2 | 3 | /** 4 | * description 5 | *

6 | * Created by sunjian on 2017/7/7. 7 | */ 8 | 9 | public interface Constants { 10 | String FOLD = "点击收回"; 11 | String EXPAND = "查看更多"; 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/component/LoadMore.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.component; 2 | 3 | /** 4 | * @author sunjian 5 | * @date 2019-10-21 20:08 6 | */ 7 | class LoadMore { 8 | static int STATE_INIT = 0x100; 9 | static int STATE_LOADING = 0x101; 10 | int state; 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /sample/src/main/res/layout/head_home.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /sample/src/main/res/drawable/shape_circle_5c93f7.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /sample/src/main/res/drawable/shape_circle_f7657d.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /sample/src/main/res/drawable/shape_circle_f9ba43.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /sample/src/main/res/menu/menu.xml: -------------------------------------------------------------------------------- 1 |

3 | 9 | 10 | -------------------------------------------------------------------------------- /sample/src/main/java/com/crazysunj/sample/base/MutiTypeTitleEntity.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.sample.base; 2 | 3 | import com.crazysunj.multitypeadapter.entity.MultiTypeEntity; 4 | 5 | /** 6 | * author: sunjian 7 | * created on: 2017/8/12 下午4:06 8 | * description: 9 | */ 10 | 11 | public interface MutiTypeTitleEntity extends MultiTypeEntity { 12 | String getTitle(); 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/testlevel/MultiTypeTitleEntity.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.testlevel; 2 | 3 | import com.crazysunj.multitypeadapter.entity.MultiTypeEntity; 4 | 5 | /** 6 | * author: sunjian 7 | * created on: 2018/4/3 下午4:31 8 | * description: 9 | */ 10 | 11 | public interface MultiTypeTitleEntity extends MultiTypeEntity { 12 | String getMsg(); 13 | } 14 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: android 2 | jdk: oraclejdk8 3 | sudo: false 4 | android: 5 | components: 6 | - android-28 7 | - build-tools-28.0.3 8 | - extra-android-support 9 | - extra-android-m2repository 10 | - platform-tools 11 | - tools 12 | before_install: 13 | - chmod +x gradlew 14 | - yes | sdkmanager "platforms;android-28" 15 | licenses: 16 | - 'android-sdk-license.*' 17 | script: ./gradlew assembleRelease -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/component/MainHelper.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.component; 2 | 3 | import com.crazysunj.multitypeadapter.entity.MultiTypeEntity; 4 | import com.crazysunj.multitypeadapter.helper.AsynAdapterHelper; 5 | 6 | /** 7 | * @author sunjian 8 | * @date 2019-10-18 19:10 9 | */ 10 | public class MainHelper extends AsynAdapterHelper { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_fifth_bottom_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_first_bottom_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_fourth_bottom_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_second_bottom_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_third_bottom_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/expand/OpenCloseItem.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.expand; 2 | 3 | import com.crazysunj.multityperecyclerviewadapter.helper.MultiHeaderEntity; 4 | 5 | /** 6 | * description 7 | *

8 | * Created by sunjian on 2017/7/5. 9 | */ 10 | 11 | public interface OpenCloseItem extends MultiHeaderEntity { 12 | int getFlag(); 13 | 14 | String getTitle(); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/testlevel/ItemConvert.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.testlevel; 2 | 3 | 4 | import com.crazysunj.multityperecyclerviewadapter.helper.BaseViewHolder; 5 | 6 | /** 7 | * author: sunjian 8 | * created on: 2018/4/3 下午1:32 9 | * description: 10 | */ 11 | 12 | public interface ItemConvert { 13 | void convert(K helper, T item); 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/component/LoadMoreEvent.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.component; 2 | 3 | /** 4 | * @author sunjian 5 | * @date 2019-10-21 20:01 6 | */ 7 | public interface LoadMoreEvent extends IEvent { 8 | void onDefault(); 9 | 10 | void onGone(); 11 | 12 | void onLoading(); 13 | 14 | void onFailed(); 15 | 16 | void onCompleted(); 17 | 18 | void onEnd(); 19 | } 20 | -------------------------------------------------------------------------------- /sample/src/main/res/drawable/shape_bottom_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/component/TypeOne.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.component; 2 | 3 | import com.crazysunj.multitypeadapter.entity.MultiTypeEntity; 4 | 5 | /** 6 | * @author sunjian 7 | * @date 2019-10-18 19:15 8 | */ 9 | public class TypeOne implements MultiTypeEntity { 10 | 11 | public static final int TYPE = 0; 12 | 13 | @Override 14 | public int getItemType() { 15 | return TYPE; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/component/TypeTwo.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.component; 2 | 3 | import com.crazysunj.multitypeadapter.entity.MultiTypeEntity; 4 | 5 | /** 6 | * @author sunjian 7 | * @date 2019-10-18 19:15 8 | */ 9 | public class TypeTwo implements MultiTypeEntity { 10 | 11 | public static final int TYPE = 1; 12 | 13 | @Override 14 | public int getItemType() { 15 | return TYPE; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/sticky/StickyItem.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.sticky; 2 | 3 | import com.crazysunj.multityperecyclerviewadapter.helper.MultiHeaderEntity; 4 | 5 | /** 6 | * Created by sunjian on 2017/3/30. 7 | */ 8 | 9 | public interface StickyItem extends MultiHeaderEntity { 10 | void setHeaderId(long headerId); 11 | 12 | void setStickyName(String stickyName); 13 | 14 | String getStickyName(); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/component/TypeThree.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.component; 2 | 3 | import com.crazysunj.multitypeadapter.entity.MultiTypeEntity; 4 | 5 | /** 6 | * @author sunjian 7 | * @date 2019-10-18 19:15 8 | */ 9 | public class TypeThree implements MultiTypeEntity { 10 | 11 | public static final int TYPE = 2; 12 | 13 | @Override 14 | public int getItemType() { 15 | return TYPE; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_header.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_header.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | #00ffffff 7 | #16000000 8 | #e0e0e0 9 | #ffffff 10 | #333333 11 | 12 | -------------------------------------------------------------------------------- /sample/src/main/java/com/crazysunj/sample/util/SnackBarUtil.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.sample.util; 2 | 3 | import android.app.Activity; 4 | import com.google.android.material.snackbar.Snackbar; 5 | 6 | /** 7 | * author: sunjian 8 | * created on: 2017/8/5 下午4:52 9 | * description: 10 | */ 11 | 12 | public class SnackBarUtil { 13 | public static void show(Activity activity, String msg) { 14 | Snackbar.make(activity.findViewById(android.R.id.content), msg, Snackbar.LENGTH_LONG).show(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /sample/src/main/res/drawable/shape_top_bottom_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /sample/src/test/java/com/crazysunj/sample/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.sample; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() throws Exception { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/item_footer.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/data/MyEmptyEntity.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.data; 2 | 3 | /** 4 | * description 5 | *

6 | * Created by sunjian on 2017/5/16. 7 | */ 8 | 9 | public class MyEmptyEntity extends SimpleEmptyEntity { 10 | 11 | private String title; 12 | 13 | public MyEmptyEntity(int type, String title) { 14 | 15 | super(type); 16 | this.title = title; 17 | } 18 | 19 | public String getTitle() { 20 | return title; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /app/src/test/java/com/crazysunj/multityperecyclerviewadapter/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() throws Exception { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /sample/src/main/res/layout/item_footer.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_switch_type.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/crazysunj/multityperecyclerviewadapter/data/MyErrorAndEmptyEmptyEntity.java: -------------------------------------------------------------------------------- 1 | package com.crazysunj.multityperecyclerviewadapter.data; 2 | 3 | /** 4 | * description 5 | *

6 | * Created by sunjian on 2017/5/16. 7 | */ 8 | 9 | public class MyErrorAndEmptyEmptyEntity extends ErrorAndEmptyEmptyEntity { 10 | 11 | private String title; 12 | 13 | public MyErrorAndEmptyEmptyEntity(int type, String title) { 14 | 15 | super(type); 16 | this.title = title; 17 | } 18 | 19 | public String getTitle() { 20 | return title; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /sample/src/main/res/layout/layout_loading_header.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_apt_default.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 |