From 749371b75edda1da0eab98e7726a833d87ff7729 Mon Sep 17 00:00:00 2001
From: chad <54050520@qq.com>
Date: Fri, 28 Apr 2017 15:52:25 +0800
Subject: [PATCH] fixbug #1078
---
app/src/main/AndroidManifest.xml | 7 ++++---
.../SectionUseActivity.java | 19 +++----------------
.../adapter/ExpandableItemAdapter.java | 9 +++++++++
app/src/main/res/values/strings.xml | 2 +-
.../adapter/base/BaseQuickAdapter.java | 13 +++++++++----
.../adapter/base/BaseSectionQuickAdapter.java | 9 +++++++--
6 files changed, 33 insertions(+), 26 deletions(-)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 941b61ec5..17f1216a3 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,8 +12,7 @@
android:supportsRtl="true"
android:theme="@style/AppTheme">
-
+
@@ -32,7 +31,9 @@
-
+
diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/SectionUseActivity.java b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/SectionUseActivity.java
index 699fc2a3f..ae2987524 100644
--- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/SectionUseActivity.java
+++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/SectionUseActivity.java
@@ -1,8 +1,8 @@
package com.chad.baserecyclerviewadapterhelper;
import android.os.Bundle;
+import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.View;
import android.widget.Toast;
@@ -28,23 +28,10 @@ protected void onCreate(Bundle savedInstanceState) {
setBackBtn();
setTitle("Section Use");
mRecyclerView = (RecyclerView) findViewById(R.id.rv_list);
- mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL));
+ mRecyclerView.setLayoutManager(new GridLayoutManager(this,2));
mData = DataServer.getSampleData();
SectionAdapter sectionAdapter = new SectionAdapter(R.layout.item_section_content, R.layout.def_section_head, mData);
-// mRecyclerView.addOnItemTouchListener(new OnItemClickListener() {
-//
-// @Override
-// public void onSimpleItemClick(BaseQuickAdapter adapter, View view, int position) {
-//
-// }
-//
-// @Override
-// public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
-//
-// }
-//
-//
-// });
+
sectionAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
diff --git a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/adapter/ExpandableItemAdapter.java b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/adapter/ExpandableItemAdapter.java
index b211b6122..f85226c0c 100644
--- a/app/src/main/java/com/chad/baserecyclerviewadapterhelper/adapter/ExpandableItemAdapter.java
+++ b/app/src/main/java/com/chad/baserecyclerviewadapterhelper/adapter/ExpandableItemAdapter.java
@@ -96,6 +96,15 @@ public void onClick(View v) {
case TYPE_PERSON:
final Person person = (Person)item;
holder.setText(R.id.tv, person.name + " parent pos: " + getParentPosition(person));
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ int cp = getParentPosition(person);
+ ((Level1Item)getData().get(cp)).removeSubItem(person);
+ getData().remove(holder.getLayoutPosition());
+ notifyItemRemoved(holder.getLayoutPosition());
+ }
+ });
break;
}
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 53213fb9f..ab62bf1d8 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,4 +1,4 @@
-
+
BRVAH
HeaderAndFooterUseActivity
Network error
diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.java b/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.java
index 12d397cb7..5793f65a9 100755
--- a/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.java
+++ b/library/src/main/java/com/chad/library/adapter/base/BaseQuickAdapter.java
@@ -747,18 +747,23 @@ public int getSpanSize(int position) {
return 1;
}
if (mSpanSizeLookup == null) {
- return (type == EMPTY_VIEW || type == HEADER_VIEW || type == FOOTER_VIEW || type ==
- LOADING_VIEW) ? gridManager.getSpanCount() : 1;
+ return isFixedViewType(type) ? gridManager.getSpanCount() : 1;
} else {
- return (type == EMPTY_VIEW || type == HEADER_VIEW || type == FOOTER_VIEW || type ==
- LOADING_VIEW) ? gridManager.getSpanCount() : mSpanSizeLookup.getSpanSize(gridManager,
+ return (isFixedViewType(type)) ? gridManager.getSpanCount() : mSpanSizeLookup.getSpanSize(gridManager,
position - getHeaderLayoutCount());
}
}
+
+
});
}
}
+ protected boolean isFixedViewType(int type) {
+ return type == EMPTY_VIEW || type == HEADER_VIEW || type == FOOTER_VIEW || type ==
+ LOADING_VIEW;
+ }
+
/**
* if asFlow is true, footer/header will arrange like normal item view.
* only works when use {@link GridLayoutManager},and it will ignore span size.
diff --git a/library/src/main/java/com/chad/library/adapter/base/BaseSectionQuickAdapter.java b/library/src/main/java/com/chad/library/adapter/base/BaseSectionQuickAdapter.java
index 475ede144..cef641e6e 100755
--- a/library/src/main/java/com/chad/library/adapter/base/BaseSectionQuickAdapter.java
+++ b/library/src/main/java/com/chad/library/adapter/base/BaseSectionQuickAdapter.java
@@ -23,14 +23,14 @@ public abstract class BaseSectionQuickAdapter data) {
+ public BaseSectionQuickAdapter(int layoutResId, int sectionHeadResId, List data) {
super(layoutResId, data);
this.mSectionHeadResId = sectionHeadResId;
}
@Override
protected int getDefItemViewType(int position) {
- return mData.get(position).isHeader ? SECTION_HEADER_VIEW : 0;
+ return mData.get(position).isHeader ? SECTION_HEADER_VIEW : 0;
}
@Override
@@ -41,6 +41,11 @@ protected K onCreateDefViewHolder(ViewGroup parent, int viewType) {
return super.onCreateDefViewHolder(parent, viewType);
}
+ @Override
+ protected boolean isFixedViewType(int type) {
+ return super.isFixedViewType(type)|| type == SECTION_HEADER_VIEW;
+ }
+
@Override
public void onBindViewHolder(K holder, int positions) {
switch (holder.getItemViewType()) {