mirror of
https://github.com/material-components/material-components-android.git
synced 2026-02-20 08:39:55 +08:00
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:
parent
ce2824f39e
commit
3dcbbb143f
@ -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);
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user