Attempt to fix selector memeory leak. Add update checker
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
package com.stardust.widget;
|
||||
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/4/8.
|
||||
*/
|
||||
|
||||
public abstract class BindableViewHolder<DataType> extends RecyclerView.ViewHolder{
|
||||
|
||||
|
||||
public BindableViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
}
|
||||
|
||||
public abstract void bind(DataType data);
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.stardust.widget;
|
||||
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.support.v7.widget.helper.ItemTouchHelper;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/4/6.
|
||||
*/
|
||||
|
||||
public class ItemTouchHelperSimpleCallback extends ItemTouchHelper.SimpleCallback {
|
||||
|
||||
private boolean mLongPressDragEnabled, mItemViewSwipeEnabled;
|
||||
|
||||
public ItemTouchHelperSimpleCallback(int dragDirs, int swipeDirs) {
|
||||
super(dragDirs, swipeDirs);
|
||||
mItemViewSwipeEnabled = swipeDirs != 0;
|
||||
mLongPressDragEnabled = dragDirs != 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLongPressDragEnabled() {
|
||||
return mLongPressDragEnabled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemViewSwipeEnabled() {
|
||||
return mItemViewSwipeEnabled;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.stardust.widget;
|
||||
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/4/8.
|
||||
*/
|
||||
|
||||
public abstract class ViewHolderMutableAdapter<VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<VH> {
|
||||
|
||||
private ViewHolderSupplier<VH> mViewHolderSupplier;
|
||||
|
||||
public ViewHolderMutableAdapter(ViewHolderSupplier<VH> viewHolderSupplier) {
|
||||
mViewHolderSupplier = viewHolderSupplier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public VH onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
return mViewHolderSupplier.createViewHolder(parent, viewType);
|
||||
}
|
||||
|
||||
public void setViewHolderSupplier(ViewHolderSupplier<VH> viewHolderSupplier) {
|
||||
mViewHolderSupplier = viewHolderSupplier;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.stardust.widget;
|
||||
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/4/8.
|
||||
*/
|
||||
|
||||
public abstract class ViewHolderSupplier<VH extends RecyclerView.ViewHolder> {
|
||||
|
||||
public abstract VH createViewHolder(ViewGroup parent, int viewType);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user