From f618b6e027a7dc230d536dc76b543502d89f6f1d Mon Sep 17 00:00:00 2001 From: XinYiWorld <1349308479@qq.com> Date: Fri, 26 May 2017 11:31:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=B0=E5=BF=86=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E7=9A=84=E4=BD=8D=E7=BD=AE=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 2 +- .idea/workspace.xml | 154 ++++++++++++++++-- .../czsuperadapter/main/CZSuperAdapter.java | 25 ++- .../czsuperadapter/main/MultiTypeMaker.java | 23 ++- 4 files changed, 183 insertions(+), 21 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 5d19981..fbb6828 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -37,7 +37,7 @@ - + diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 1d3f086..465a369 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,15 +1,14 @@ + + - - - - - + - + @@ -62,14 +61,31 @@ - + - - + + - - + + + + + + + + + + + + + + + + + + + @@ -2605,6 +2621,8 @@ @@ -2658,6 +2676,78 @@ + + + + + @@ -2869,7 +2964,7 @@ - + @@ -2879,7 +2974,7 @@ - + @@ -2888,7 +2983,7 @@ - + @@ -2944,13 +3039,36 @@ + + + + + + + + - - + + + + + + + + + + + + + + + + + - - + + diff --git a/libary/src/main/java/com/xinyi/czsuperadapter/main/CZSuperAdapter.java b/libary/src/main/java/com/xinyi/czsuperadapter/main/CZSuperAdapter.java index 1b27cef..c94e994 100644 --- a/libary/src/main/java/com/xinyi/czsuperadapter/main/CZSuperAdapter.java +++ b/libary/src/main/java/com/xinyi/czsuperadapter/main/CZSuperAdapter.java @@ -9,6 +9,7 @@ import com.xinyi.czsuperadapter.ICRUDAdapter; import com.xinyi.czsuperadapter.interfaces.IAddTypeMaker; +import com.xinyi.czsuperadapter.interfaces.IMemoryPosition; import com.xinyi.czsuperadapter.interfaces.IRemoveTypeMaker; /** @@ -24,7 +25,7 @@ * 4)点击事件与刷新冲突(未解决) */ -public class CZSuperAdapter extends ICRUDAdapter implements IAddTypeMaker,IRemoveTypeMaker { +public class CZSuperAdapter extends ICRUDAdapter implements IAddTypeMaker,IRemoveTypeMaker,IMemoryPosition { private static final String TAG = "CZSuperAdapter"; private RecyclerView recyclerView; private MultiTypeMaker mNormalTypeMaker; @@ -34,6 +35,11 @@ public class CZSuperAdapter extends ICRUDAdapter implements IAddTypeMaker, private CommonViewHolder.OnItemClickListener onItemClickListener; private CommonViewHolder.OnItemLongClickListener onItemLongClickListener; + + //记忆位置 + private int previousSelectPosition = -1; + + @Override public void onAttachedToRecyclerView(RecyclerView recyclerView) { super.onAttachedToRecyclerView(recyclerView); @@ -332,4 +338,21 @@ public void setOnItemClickListener(final CommonViewHolder.OnItemClickListener li public void setOnItemLongClickListener(final CommonViewHolder.OnItemLongClickListener listener) { this.onItemLongClickListener = listener; } + + //记忆位置(默认调用mNormalTypeMaker的方法,后期调用根据项目需求可以复写。) + @Override + public int getPreviousSelectPosition() { + return mNormalTypeMaker.getPreviousSelectPosition(); + } + + @Override + public void setPreviousSelectPosition(int previousSelectPosition) { + this.previousSelectPosition = previousSelectPosition; + mNormalTypeMaker.setPreviousSelectPosition(previousSelectPosition); + } + + @Override + public void selectPosition(final int position){ + mNormalTypeMaker.selectPosition(position); + } } diff --git a/libary/src/main/java/com/xinyi/czsuperadapter/main/MultiTypeMaker.java b/libary/src/main/java/com/xinyi/czsuperadapter/main/MultiTypeMaker.java index 6610ff6..394c465 100644 --- a/libary/src/main/java/com/xinyi/czsuperadapter/main/MultiTypeMaker.java +++ b/libary/src/main/java/com/xinyi/czsuperadapter/main/MultiTypeMaker.java @@ -3,13 +3,14 @@ import android.support.v7.widget.RecyclerView; import com.xinyi.czsuperadapter.interfaces.IBindRecyclerView; +import com.xinyi.czsuperadapter.interfaces.IMemoryPosition; /** * Created by 陈章 on 2016/12/20 0020. * func: */ -public abstract class MultiTypeMaker implements IBindRecyclerView { +public abstract class MultiTypeMaker implements IBindRecyclerView ,IMemoryPosition{ public static final int TYPE_REFRESH = 1001; //下拉刷新 public static final int TYPE_HEADER = 1002; //头布局 public static final int TYPE_FOOTER = 1003; //脚布局 @@ -22,6 +23,11 @@ public abstract class MultiTypeMaker implements IBindRecyclerView { private int type; private T data; + + //记忆位置 + private int previousSelectPosition = -1; + + public abstract int getType(int position); public abstract int getLayoutId(int viewType); public abstract void bindViewHolder(CommonViewHolder holder, T data, int viewType, int position); @@ -69,4 +75,19 @@ public T getData() { public void setData(T data) { this.data = data; } + + @Override + public int getPreviousSelectPosition() { + return previousSelectPosition; + } + + @Override + public void setPreviousSelectPosition(int previousSelectPosition) { + this.previousSelectPosition = previousSelectPosition; + } + + @Override + public void selectPosition(final int position){ + + } }