am e274607c: am cae51694: Merge "Ensure that SwipeDismissBehavior affects the correct view" into mnc-ub-dev

* commit 'e274607cdee3deb8f2f15a6bbdaf6051dd6fa6bc':
  Ensure that SwipeDismissBehavior affects the correct view

GitOrigin-RevId=9d6eb9beafef317f0f1bc5596ab47114c161f41a

PiperOrigin-RevId: 140551102
This commit is contained in:
Chris Banes 2016-11-30 01:42:03 +00:00 committed by Travis Collins
parent ce2824f39e
commit 3dcbbb143f
3 changed files with 23 additions and 2 deletions

View File

@ -311,6 +311,7 @@ package android.support.design.widget {
public class SwipeDismissBehavior extends android.support.design.widget.CoordinatorLayout.Behavior {
ctor public SwipeDismissBehavior();
method public boolean canSwipeDismissView(android.view.View);
method public int getDragState();
method public void setDragDismissDistance(float);
method public void setEndAlphaSwipeDistance(float);

View File

@ -811,6 +811,11 @@ public final class Snackbar {
}
final class Behavior extends SwipeDismissBehavior<SnackbarLayout> {
@Override
public boolean canSwipeDismissView(View child) {
return child instanceof SnackbarLayout;
}
@Override
public boolean onInterceptTouchEvent(CoordinatorLayout parent, SnackbarLayout child,
MotionEvent event) {

View File

@ -17,6 +17,7 @@
package android.support.design.widget;
import android.support.annotation.IntDef;
import android.support.annotation.NonNull;
import android.support.v4.view.MotionEventCompat;
import android.support.v4.view.ViewCompat;
import android.support.v4.widget.ViewDragHelper;
@ -198,13 +199,27 @@ public class SwipeDismissBehavior<V extends View> extends CoordinatorLayout.Beha
return false;
}
/**
* Called when the user's input indicates that they want to swipe the given view.
*
* @param view View the user is attempting to swipe
* @return true if the view can be dismissed via swiping, false otherwise
*/
public boolean canSwipeDismissView(@NonNull View view) {
return true;
}
private final ViewDragHelper.Callback mDragCallback = new ViewDragHelper.Callback() {
private int mOriginalCapturedViewLeft;
@Override
public boolean tryCaptureView(View child, int pointerId) {
mOriginalCapturedViewLeft = child.getLeft();
return true;
return canSwipeDismissView(child);
}
@Override
public void onViewCaptured(View capturedChild, int activePointerId) {
mOriginalCapturedViewLeft = capturedChild.getLeft();
}
@Override