Skip to content

Commit

Permalink
fix #1318
Browse files Browse the repository at this point in the history
  • Loading branch information
FrankKwok committed Jul 18, 2017
1 parent 583b37b commit f11ef40
Show file tree
Hide file tree
Showing 22 changed files with 99 additions and 98 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -49,18 +49,18 @@ public BaseItemDraggableAdapter(int layoutResId, List<T> data) {
* To bind different types of holder and solve different the bind events
*
* @param holder
* @param positions
* @param position
* @see #getDefItemViewType(int)
*/
@Override
public void onBindViewHolder(K holder, int positions) {
super.onBindViewHolder(holder, positions);
public void onBindViewHolder(K holder, int position) {
super.onBindViewHolder(holder, position);
int viewType = holder.getItemViewType();

if (mItemTouchHelper != null && itemDragEnabled && viewType != LOADING_VIEW && viewType != HEADER_VIEW
&& viewType != EMPTY_VIEW && viewType != FOOTER_VIEW) {
if (mToggleViewId != NO_TOGGLE_VIEW) {
View toggleView = ((BaseViewHolder) holder).getView(mToggleViewId);
View toggleView = holder.getView(mToggleViewId);
if (toggleView != null) {
toggleView.setTag(R.id.BaseQuickAdapter_viewholder_support, holder);
if (mDragOnLongPress) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import android.support.annotation.LayoutRes;
import android.util.SparseArray;
import android.util.SparseIntArray;
import android.view.ViewGroup;

import com.chad.library.adapter.base.entity.MultiItemEntity;
Expand All @@ -16,7 +17,7 @@ public abstract class BaseMultiItemQuickAdapter<T extends MultiItemEntity, K ext
/**
* layouts indexed with their types
*/
private SparseArray<Integer> layouts;
private SparseIntArray layouts;

private static final int DEFAULT_VIEW_TYPE = -0xff;
public static final int TYPE_NOT_FOUND = -404;
Expand Down Expand Up @@ -50,12 +51,12 @@ protected K onCreateDefViewHolder(ViewGroup parent, int viewType) {
}

private int getLayoutId(int viewType) {
return layouts.get(viewType,TYPE_NOT_FOUND);
return layouts.get(viewType, TYPE_NOT_FOUND);
}

protected void addItemType(int type, @LayoutRes int layoutResId) {
if (layouts == null) {
layouts = new SparseArray<>();
layouts = new SparseIntArray();
}
layouts.put(type, layoutResId);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -908,21 +908,20 @@ public void setSpanSizeLookup(SpanSizeLookup spanSizeLookup) {
* To bind different types of holder and solve different the bind events
*
* @param holder
* @param positions
* @param position
* @see #getDefItemViewType(int)
*/
@Override
public void onBindViewHolder(K holder, int positions) {
public void onBindViewHolder(K holder, int position) {
//Add up fetch logic, almost like load more, but simpler.
autoUpFetch(positions);
autoUpFetch(position);
//Do not move position, need to change before LoadMoreView binding
autoLoadMore(positions);
autoLoadMore(position);
int viewType = holder.getItemViewType();

switch (viewType) {
case 0:

convert(holder, mData.get(holder.getLayoutPosition() - getHeaderLayoutCount()));
convert(holder, getItem(position - getHeaderLayoutCount()));
break;
case LOADING_VIEW:
mLoadMoreView.convert(holder);
Expand All @@ -934,7 +933,7 @@ public void onBindViewHolder(K holder, int positions) {
case FOOTER_VIEW:
break;
default:
convert(holder, mData.get(holder.getLayoutPosition() - getHeaderLayoutCount()));
convert(holder, getItem(position - getHeaderLayoutCount()));
break;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,18 +43,18 @@ protected K onCreateDefViewHolder(ViewGroup parent, int viewType) {

@Override
protected boolean isFixedViewType(int type) {
return super.isFixedViewType(type)|| type == SECTION_HEADER_VIEW;
return super.isFixedViewType(type) || type == SECTION_HEADER_VIEW;
}

@Override
public void onBindViewHolder(K holder, int positions) {
public void onBindViewHolder(K holder, int position) {
switch (holder.getItemViewType()) {
case SECTION_HEADER_VIEW:
setFullSpan(holder);
convertHead(holder, mData.get(holder.getLayoutPosition() - getHeaderLayoutCount()));
convertHead(holder, getItem(position - getHeaderLayoutCount()));
break;
default:
super.onBindViewHolder(holder, positions);
super.onBindViewHolder(holder, position);
break;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@

import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;


/**
Expand All @@ -52,7 +53,7 @@ public class BaseViewHolder extends RecyclerView.ViewHolder {
*/
private final SparseArray<View> views;

public HashSet<Integer> getNestViews() {
public Set<Integer> getNestViews() {
return nestViews;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
* https://github.com/CymChad/BaseRecyclerViewAdapterHelper
*/
public class AlphaInAnimation implements BaseAnimation {

private static final float DEFAULT_ALPHA_FROM = 0f;
private final float mFrom;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
/**
* https://github.com/CymChad/BaseRecyclerViewAdapterHelper
*/
public interface BaseAnimation {

public interface BaseAnimation {
Animator[] getAnimators(View view);

}
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,21 @@
* https://github.com/CymChad/BaseRecyclerViewAdapterHelper
*/
public class ScaleInAnimation implements BaseAnimation {
private static final float DEFAULT_SCALE_FROM = .5f;
private final float mFrom;

private static final float DEFAULT_SCALE_FROM = .5f;
private final float mFrom;
public ScaleInAnimation() {
this(DEFAULT_SCALE_FROM);
}

public ScaleInAnimation() {
this(DEFAULT_SCALE_FROM);
}
public ScaleInAnimation(float from) {
mFrom = from;
}

public ScaleInAnimation(float from) {
mFrom = from;
}

@Override
public Animator[] getAnimators(View view) {
ObjectAnimator scaleX = ObjectAnimator.ofFloat(view, "scaleX", mFrom, 1f);
ObjectAnimator scaleY = ObjectAnimator.ofFloat(view, "scaleY", mFrom, 1f);
return new ObjectAnimator[] { scaleX, scaleY };
}
@Override
public Animator[] getAnimators(View view) {
ObjectAnimator scaleX = ObjectAnimator.ofFloat(view, "scaleX", mFrom, 1f);
ObjectAnimator scaleY = ObjectAnimator.ofFloat(view, "scaleY", mFrom, 1f);
return new ObjectAnimator[]{scaleX, scaleY};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@
* https://github.com/CymChad/BaseRecyclerViewAdapterHelper
*/
public class SlideInBottomAnimation implements BaseAnimation {



@Override
public Animator[] getAnimators(View view) {
return new Animator[]{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,10 @@
* https://github.com/CymChad/BaseRecyclerViewAdapterHelper
*/
public class SlideInLeftAnimation implements BaseAnimation {


@Override
public Animator[] getAnimators(View view) {
return new Animator[] {
ObjectAnimator.ofFloat(view, "translationX", -view.getRootView().getWidth(), 0)
};
}
@Override
public Animator[] getAnimators(View view) {
return new Animator[]{
ObjectAnimator.ofFloat(view, "translationX", -view.getRootView().getWidth(), 0)
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@
* https://github.com/CymChad/BaseRecyclerViewAdapterHelper
*/
public class SlideInRightAnimation implements BaseAnimation {


@Override
public Animator[] getAnimators(View view) {
return new Animator[]{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class ItemDragAndSwipeCallback extends ItemTouchHelper.Callback {
float mMoveThreshold = 0.1f;
float mSwipeThreshold = 0.7f;

int mDragMoveFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;
int mDragMoveFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;
int mSwipeMoveFlags = ItemTouchHelper.END;

public ItemDragAndSwipeCallback(BaseItemDraggableAdapter adapter) {
Expand Down Expand Up @@ -59,12 +59,12 @@ public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHol
}

if (viewHolder.itemView.getTag(R.id.BaseQuickAdapter_dragging_support) != null
&& (Boolean)viewHolder.itemView.getTag(R.id.BaseQuickAdapter_dragging_support)) {
&& (Boolean) viewHolder.itemView.getTag(R.id.BaseQuickAdapter_dragging_support)) {
mAdapter.onItemDragEnd(viewHolder);
viewHolder.itemView.setTag(R.id.BaseQuickAdapter_dragging_support, false);
}
if (viewHolder.itemView.getTag(R.id.BaseQuickAdapter_swiping_support) != null
&& (Boolean)viewHolder.itemView.getTag(R.id.BaseQuickAdapter_swiping_support)) {
&& (Boolean) viewHolder.itemView.getTag(R.id.BaseQuickAdapter_swiping_support)) {
mAdapter.onItemSwipeClear(viewHolder);
viewHolder.itemView.setTag(R.id.BaseQuickAdapter_swiping_support, false);
}
Expand Down Expand Up @@ -119,7 +119,7 @@ public float getSwipeThreshold(RecyclerView.ViewHolder viewHolder) {
* half of RecyclerView's width or height, depending on the swipe direction.
*
* @param swipeThreshold A float value that denotes the fraction of the View size. Default value
* is .8f .
* is .8f .
*/
public void setSwipeThreshold(float swipeThreshold) {
mSwipeThreshold = swipeThreshold;
Expand All @@ -132,7 +132,7 @@ public void setSwipeThreshold(float swipeThreshold) {
* below it for a possible drop.
*
* @param moveThreshold A float value that denotes the fraction of the View size. Default value is
* .1f .
* .1f .
*/
public void setMoveThreshold(float moveThreshold) {
mMoveThreshold = moveThreshold;
Expand All @@ -142,6 +142,7 @@ public void setMoveThreshold(float moveThreshold) {
* <p>Set the drag movement direction.</p>
* <p>The value should be ItemTouchHelper.UP, ItemTouchHelper.DOWN, ItemTouchHelper.LEFT, ItemTouchHelper.RIGHT or their combination.</p>
* You can combine them like ItemTouchHelper.UP | ItemTouchHelper.DOWN, it means that the item could only move up and down when dragged.
*
* @param dragMoveFlags the drag movement direction. Default value is ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT.
*/
public void setDragMoveFlags(int dragMoveFlags) {
Expand All @@ -152,6 +153,7 @@ public void setDragMoveFlags(int dragMoveFlags) {
* <p>Set the swipe movement direction.</p>
* <p>The value should be ItemTouchHelper.START, ItemTouchHelper.END or their combination.</p>
* You can combine them like ItemTouchHelper.START | ItemTouchHelper.END, it means that the item could swipe to both left or right.
*
* @param swipeMoveFlags the swipe movement direction. Default value is ItemTouchHelper.END.
*/
public void setSwipeMoveFlags(int swipeMoveFlags) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,5 @@
* https://github.com/CymChad/BaseRecyclerViewAdapterHelper
*/
public interface MultiItemEntity {

int getItemType();

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
**/

public abstract class OnItemChildClickListener extends SimpleClickListener {

@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {

Expand All @@ -33,6 +32,5 @@ public void onItemChildLongClick(BaseQuickAdapter adapter, View view, int positi

}

public abstract void onSimpleItemChildClick(BaseQuickAdapter adapter, View view, int position);

public abstract void onSimpleItemChildClick(BaseQuickAdapter adapter, View view, int position);
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
* {@link SimpleClickListener}
**/
public abstract class OnItemChildLongClickListener extends SimpleClickListener {


@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {

Expand All @@ -30,7 +28,8 @@ public void onItemChildClick(BaseQuickAdapter adapter, View view, int position)

@Override
public void onItemChildLongClick(BaseQuickAdapter adapter, View view, int position) {
onSimpleItemChildLongClick(adapter,view,position);
onSimpleItemChildLongClick(adapter, view, position);
}

public abstract void onSimpleItemChildLongClick(BaseQuickAdapter adapter, View view, int position);
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,16 @@

/**
* Created by AllenCoder on 2016/8/03.
*
*
* <p>
* <p>
* A convenience class to extend when you only want to OnItemClickListener for a subset
* of all the SimpleClickListener. This implements all methods in the
* {@link SimpleClickListener}
*/
public abstract class OnItemClickListener extends SimpleClickListener {


public abstract class OnItemClickListener extends SimpleClickListener {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
onSimpleItemClick(adapter,view,position);
onSimpleItemClick(adapter, view, position);
}

@Override
Expand All @@ -34,5 +32,6 @@ public void onItemChildClick(BaseQuickAdapter adapter, View view, int position)
public void onItemChildLongClick(BaseQuickAdapter adapter, View view, int position) {

}

public abstract void onSimpleItemClick(BaseQuickAdapter adapter, View view, int position);
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
*/
public interface OnItemDragListener {
void onItemDragStart(RecyclerView.ViewHolder viewHolder, int pos);

void onItemDragMoving(RecyclerView.ViewHolder source, int from, RecyclerView.ViewHolder target, int to);
void onItemDragEnd(RecyclerView.ViewHolder viewHolder, int pos);

void onItemDragEnd(RecyclerView.ViewHolder viewHolder, int pos);
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,14 @@
*/

public abstract class OnItemLongClickListener extends SimpleClickListener {




@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {

}

@Override
public void onItemLongClick(BaseQuickAdapter adapter, View view, int position) {
onSimpleItemLongClick( adapter, view, position);
onSimpleItemLongClick(adapter, view, position);
}

@Override
Expand All @@ -31,5 +27,6 @@ public void onItemChildClick(BaseQuickAdapter adapter, View view, int position)
@Override
public void onItemChildLongClick(BaseQuickAdapter adapter, View view, int position) {
}

public abstract void onSimpleItemLongClick(BaseQuickAdapter adapter, View view, int position);
}
Loading

0 comments on commit f11ef40

Please sign in to comment.