Add Preference

This commit is contained in:
seven332 committed 2015-05-28 21:29:20 +08:00
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