Add Preference
This commit is contained in:
1 parent
c1af94afa0
commit
aa61dada92
44 files changed
+1447
-77
No files matched your search
@@ -166,6 +166,7 @@ public class EasyRecyclerView extends RecyclerView {
|
||||
*/
|
||||
int mSelectionBottomPadding = 0;
|
||||
|
||||
private OnDrawSelectorListener mOnDrawSelectorListener;
|
||||
|
||||
public EasyRecyclerView(Context context) {
|
||||
super(context);
|
||||
@@ -278,14 +279,20 @@ public class EasyRecyclerView extends RecyclerView {
|
||||
mGroupFlags &= ~CLIP_TO_PADDING_MASK;
|
||||
}
|
||||
|
||||
// TODO disable selector drawable state change when need not to draw selector
|
||||
boolean drawSelector = mOnDrawSelectorListener == null ||
|
||||
mSelectorPosition < 0 ||
|
||||
mSelectorPosition >= mAdapter.getItemCount() ||
|
||||
mOnDrawSelectorListener.beforeDrawSelector(mSelectorPosition);
|
||||
final boolean drawSelectorOnTop = mDrawSelectorOnTop;
|
||||
if (!drawSelectorOnTop) {
|
||||
|
||||
if (drawSelector && !drawSelectorOnTop) {
|
||||
drawSelector(canvas);
|
||||
}
|
||||
|
||||
super.dispatchDraw(canvas);
|
||||
|
||||
if (drawSelectorOnTop) {
|
||||
if (drawSelector && drawSelectorOnTop) {
|
||||
drawSelector(canvas);
|
||||
}
|
||||
|
||||
@@ -314,6 +321,10 @@ public class EasyRecyclerView extends RecyclerView {
|
||||
}
|
||||
}
|
||||
|
||||
public void setOnDrawSelectorListener(OnDrawSelectorListener listener) {
|
||||
mOnDrawSelectorListener = listener;
|
||||
}
|
||||
|
||||
/**
|
||||
* Controls whether the selection highlight drawable should be drawn on top of the item or
|
||||
* behind it.
|
||||
@@ -351,6 +362,14 @@ public class EasyRecyclerView extends RecyclerView {
|
||||
return mSelector;
|
||||
}
|
||||
|
||||
private void cancelDrawingSelector() {
|
||||
Rect rect = mSelectorRect;
|
||||
rect.left = 0;
|
||||
rect.top = 0;
|
||||
rect.right = 0;
|
||||
rect.bottom = 0;
|
||||
}
|
||||
|
||||
void updateSelectorState() {
|
||||
if (mSelector != null) {
|
||||
if (shouldShowSelector()) {
|
||||
@@ -656,6 +675,14 @@ public class EasyRecyclerView extends RecyclerView {
|
||||
}
|
||||
}
|
||||
|
||||
public float getTouchStartX() {
|
||||
return mStartX;
|
||||
}
|
||||
|
||||
public float getTouchStartY() {
|
||||
return mStartY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent ev) {
|
||||
if (!isEnabled()) {
|
||||
@@ -733,6 +760,7 @@ public class EasyRecyclerView extends RecyclerView {
|
||||
setPressed(false);
|
||||
}
|
||||
updateSelectorState();
|
||||
cancelDrawingSelector();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1215,6 +1243,19 @@ public class EasyRecyclerView extends RecyclerView {
|
||||
boolean onItemLongClick(EasyRecyclerView parent, View view, int position, long id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Interface definition for a callback to be invoked when draw selector.
|
||||
*/
|
||||
public interface OnDrawSelectorListener {
|
||||
/**
|
||||
* Callback method to be invoked before selector draw.
|
||||
*
|
||||
* @param position The EasyRecyclerView where the click happened
|
||||
* @return true if need draw selector, false otherwise
|
||||
*/
|
||||
boolean beforeDrawSelector(int position);
|
||||
}
|
||||
|
||||
/**
|
||||
* A MultiChoiceModeListener receives events for {@link android.widget.AbsListView#CHOICE_MODE_MULTIPLE_MODAL}.
|
||||
* It acts as the {@link android.support.v7.view.ActionMode.Callback} for the selection mode and also receives
|
||||
|
||||
Reference in new issue
Block a user