diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 64c72b114..9a9b1a294 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,7 @@
android:name=".HomeActivity"
android:launchMode="singleTask">
+
\ No newline at end of file
diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/HomeActivity.java b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/HomeActivity.java
index 2325e5337..5e8f58d0a 100644
--- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/HomeActivity.java
+++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/HomeActivity.java
@@ -18,9 +18,9 @@
* https://github.com/CymChad/BaseRecyclerViewAdapterHelper
*/
public class HomeActivity extends AppCompatActivity {
- private static final Class>[] ACTIVITY = {AnimationUseActivity.class, ChooseMultipleItemUseTypeActivity.class, HeaderAndFooterUseActivity.class, PullToRefreshUseActivity.class, SectionUseActivity.class, EmptyViewUseActivity.class, ItemDragAndSwipeUseActivity.class, ItemClickActivity.class, ExpandableUseActivity.class, DataBindingUseActivity.class,UpFetchUseActivity.class};
- private static final String[] TITLE = {"Animation", "MultipleItem", "Header/Footer", "PullToRefresh", "Section", "EmptyView", "DragAndSwipe", "ItemClick", "ExpandableItem", "DataBinding", "UpFetchData"};
- private static final int[] IMG = {R.mipmap.gv_animation, R.mipmap.gv_multipleltem, R.mipmap.gv_header_and_footer, R.mipmap.gv_pulltorefresh, R.mipmap.gv_section, R.mipmap.gv_empty, R.mipmap.gv_drag_and_swipe, R.mipmap.gv_item_click, R.mipmap.gv_expandable, R.mipmap.gv_databinding,R.drawable.gv_up_fetch};
+ private static final Class>[] ACTIVITY = {AnimationUseActivity.class, ChooseMultipleItemUseTypeActivity.class, HeaderAndFooterUseActivity.class, PullToRefreshUseActivity.class, SectionUseActivity.class, EmptyViewUseActivity.class, ItemDragAndSwipeUseActivity.class, ItemClickActivity.class, ExpandableUseActivity.class, DataBindingUseActivity.class,UpFetchUseActivity.class,SectionMultipleItemUseActivity.class};
+ private static final String[] TITLE = {"Animation", "MultipleItem", "Header/Footer", "PullToRefresh", "Section", "EmptyView", "DragAndSwipe", "ItemClick", "ExpandableItem", "DataBinding", "UpFetchData", "SectionMultipleItem"};
+ private static final int[] IMG = {R.mipmap.gv_animation, R.mipmap.gv_multipleltem, R.mipmap.gv_header_and_footer, R.mipmap.gv_pulltorefresh, R.mipmap.gv_section, R.mipmap.gv_empty, R.mipmap.gv_drag_and_swipe, R.mipmap.gv_item_click, R.mipmap.gv_expandable, R.mipmap.gv_databinding,R.drawable.gv_up_fetch, R.mipmap.gv_multipleltem};
private ArrayList mDataList;
private RecyclerView mRecyclerView;
diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/SectionMultipleItemUseActivity.java b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/SectionMultipleItemUseActivity.java
new file mode 100644
index 000000000..4207d4087
--- /dev/null
+++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/SectionMultipleItemUseActivity.java
@@ -0,0 +1,60 @@
+package com.chad.baserecyclerviewadapterhelper;
+
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.Toast;
+
+import com.chad.baserecyclerviewadapterhelper.adapter.SectionMultipleItemAdapter;
+import com.chad.baserecyclerviewadapterhelper.base.BaseActivity;
+import com.chad.baserecyclerviewadapterhelper.data.DataServer;
+import com.chad.baserecyclerviewadapterhelper.entity.SectionMultipleItem;
+import com.chad.library.adapter.base.BaseQuickAdapter;
+
+import java.util.List;
+
+/**
+ * to get SectionMultipleItem you need follow two things
+ * 1.create entity which extend SectionMultiEntity
+ * 2.create adapter which extend BaseSectionMultiItemQuickAdapter
+ */
+public class SectionMultipleItemUseActivity extends BaseActivity {
+ private RecyclerView mRecyclerView;
+ private List mData;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_section_uer);
+ setBackBtn();
+ setTitle("SectionMultiple Use");
+ mRecyclerView = (RecyclerView) findViewById(R.id.rv_list);
+ mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+
+ // 1. create entityList which item data extend SectionMultiEntity
+ mData = DataServer.getSectionMultiData();
+
+ // create adapter which extend BaseSectionMultiItemQuickAdapter provide your headerResId
+ SectionMultipleItemAdapter sectionAdapter = new SectionMultipleItemAdapter(R.layout.def_section_head, mData);
+ sectionAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
+ @Override
+ public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
+ SectionMultipleItem item = (SectionMultipleItem) adapter.getData().get(position);
+ switch (view.getId()) {
+ case R.id.card_view:
+ // 获取主体item相应数据给后期使用
+ if (item.getVideo() != null) {
+ Toast.makeText(SectionMultipleItemUseActivity.this, item.getVideo().getName(), Toast.LENGTH_LONG).show();
+ }
+ break;
+ default:
+ Toast.makeText(SectionMultipleItemUseActivity.this, "OnItemChildClickListener " + position, Toast.LENGTH_LONG).show();
+ break;
+
+ }
+ }
+ });
+ mRecyclerView.setAdapter(sectionAdapter);
+ }
+}
diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/adapter/SectionMultipleItemAdapter.java b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/adapter/SectionMultipleItemAdapter.java
new file mode 100644
index 000000000..e47e4944a
--- /dev/null
+++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/adapter/SectionMultipleItemAdapter.java
@@ -0,0 +1,57 @@
+package com.chad.baserecyclerviewadapterhelper.adapter;
+
+import com.chad.baserecyclerviewadapterhelper.R;
+import com.chad.baserecyclerviewadapterhelper.entity.MultipleItem;
+import com.chad.baserecyclerviewadapterhelper.entity.SectionMultipleItem;
+import com.chad.library.adapter.base.BaseSectionMultiItemQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
+
+import java.util.List;
+
+/**
+ * https://github.com/CymChad/BaseRecyclerViewAdapterHelper
+ */
+public class SectionMultipleItemAdapter extends BaseSectionMultiItemQuickAdapter {
+ /**
+ * init SectionMultipleItemAdapter
+ * 1. add your header resource layout
+ * 2. add some kind of items
+ *
+ * @param sectionHeadResId The section head layout id for each item
+ * @param data A new list is created out of this one to avoid mutable list
+ */
+ public SectionMultipleItemAdapter(int sectionHeadResId, List data) {
+ super(sectionHeadResId, data);
+ addItemType(SectionMultipleItem.TEXT, R.layout.item_text_view);
+ addItemType(SectionMultipleItem.IMG_TEXT, R.layout.item_img_text_view);
+ }
+
+ @Override
+ protected void convertHead(BaseViewHolder helper, final SectionMultipleItem item) {
+ // deal with header viewHolder
+ helper.setText(R.id.header, item.header);
+ helper.setVisible(R.id.more, item.isMore());
+ helper.addOnClickListener(R.id.more);
+ }
+
+ @Override
+ protected void convert(BaseViewHolder helper, SectionMultipleItem item) {
+ // deal with multiple type items viewHolder
+ helper.addOnClickListener(R.id.card_view);
+ switch (helper.getItemViewType()) {
+ case MultipleItem.TEXT:
+ helper.setText(R.id.tv, item.getVideo().getName());
+ break;
+ case MultipleItem.IMG_TEXT:
+ switch (helper.getLayoutPosition() % 2) {
+ case 0:
+ helper.setImageResource(R.id.iv, R.mipmap.animation_img1);
+ break;
+ case 1:
+ helper.setImageResource(R.id.iv, R.mipmap.animation_img2);
+ break;
+ }
+ break;
+ }
+ }
+}
diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/data/DataServer.java b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/data/DataServer.java
index fd23a3819..67ae1d228 100644
--- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/data/DataServer.java
+++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/data/DataServer.java
@@ -4,6 +4,7 @@
import com.chad.baserecyclerviewadapterhelper.entity.MultipleItem;
import com.chad.baserecyclerviewadapterhelper.entity.MySection;
import com.chad.baserecyclerviewadapterhelper.entity.NormalMultipleEntity;
+import com.chad.baserecyclerviewadapterhelper.entity.SectionMultipleItem;
import com.chad.baserecyclerviewadapterhelper.entity.Status;
import com.chad.baserecyclerviewadapterhelper.entity.Video;
@@ -73,6 +74,34 @@ public static List getSampleData() {
return list;
}
+ public static List getSectionMultiData() {
+ List list = new ArrayList<>();
+ Video video = new Video(HTTPS_AVATARS1_GITHUBUSERCONTENT_COM_LINK, CYM_CHAD);
+
+ // add section data
+ list.add(new SectionMultipleItem(true, "Section 1", true));
+ // add multiple type item data ---start---
+ list.add(new SectionMultipleItem(SectionMultipleItem.TEXT, new Video(HTTPS_AVATARS1_GITHUBUSERCONTENT_COM_LINK, "video_id_0")));
+ list.add(new SectionMultipleItem(SectionMultipleItem.TEXT, new Video(HTTPS_AVATARS1_GITHUBUSERCONTENT_COM_LINK, "video_id_1")));
+ list.add(new SectionMultipleItem(SectionMultipleItem.IMG_TEXT, new Video(HTTPS_AVATARS1_GITHUBUSERCONTENT_COM_LINK, "video_id_2")));
+ // ---end---
+
+ list.add(new SectionMultipleItem(true, "Section 2", false));
+ list.add(new SectionMultipleItem(SectionMultipleItem.IMG_TEXT, video));
+ list.add(new SectionMultipleItem(SectionMultipleItem.IMG_TEXT, video));
+ list.add(new SectionMultipleItem(SectionMultipleItem.TEXT, video));
+ list.add(new SectionMultipleItem(SectionMultipleItem.TEXT, video));
+ list.add(new SectionMultipleItem(true, "Section 3", false));
+ list.add(new SectionMultipleItem(SectionMultipleItem.IMG_TEXT, video));
+ list.add(new SectionMultipleItem(true, "Section 4", false));
+ list.add(new SectionMultipleItem(SectionMultipleItem.TEXT, video));
+ list.add(new SectionMultipleItem(true, "Section 5", false));
+ list.add(new SectionMultipleItem(SectionMultipleItem.IMG_TEXT, video));
+ list.add(new SectionMultipleItem(SectionMultipleItem.IMG_TEXT, video));
+ list.add(new SectionMultipleItem(SectionMultipleItem.IMG_TEXT, video));
+ return list;
+ }
+
public static List getStrData() {
List list = new ArrayList<>();
for (int i = 0; i < 20; i++) {
diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/entity/SectionMultipleItem.java b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/entity/SectionMultipleItem.java
new file mode 100644
index 000000000..84384ce21
--- /dev/null
+++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/entity/SectionMultipleItem.java
@@ -0,0 +1,49 @@
+package com.chad.baserecyclerviewadapterhelper.entity;
+
+import com.chad.library.adapter.base.entity.MultiItemEntity;
+import com.chad.library.adapter.base.entity.SectionMultiEntity;
+
+/**
+ * https://github.com/CymChad/BaseRecyclerViewAdapterHelper
+ */
+public class SectionMultipleItem extends SectionMultiEntity