demo to show that three edge swipe works
This commit is contained in:
parent
1fd2ec7d2f
commit
93c06bfa01
|
|
@ -28,9 +28,9 @@ public class MyActivity extends Activity {
|
||||||
|
|
||||||
sample1 = (SwipeLayout) findViewById(R.id.sample1);
|
sample1 = (SwipeLayout) findViewById(R.id.sample1);
|
||||||
sample1.setShowMode(SwipeLayout.ShowMode.LayDown);
|
sample1.setShowMode(SwipeLayout.ShowMode.LayDown);
|
||||||
sample1.setDragEdges(SwipeLayout.DragEdge.Left, SwipeLayout.DragEdge.Right);
|
sample1.setDragEdges(SwipeLayout.DragEdge.Left, SwipeLayout.DragEdge.Right, SwipeLayout.DragEdge.Top);
|
||||||
// When using multiple drag edges it's a good idea to pass the ids of the views that you're using for the left, right, top bottom views (-1 if you're not using a particular view)
|
// When using multiple drag edges it's a good idea to pass the ids of the views that you're using for the left, right, top bottom views (-1 if you're not using a particular view)
|
||||||
sample1.setBottomViewIds(R.id.bottom_wrapper, R.id.bottom_wrapper_2, -1, -1);
|
sample1.setBottomViewIds(R.id.bottom_wrapper, R.id.bottom_wrapper_2, R.id.starbott, -1);
|
||||||
sample1.addRevealListener(R.id.delete, new SwipeLayout.OnRevealListener() {
|
sample1.addRevealListener(R.id.delete, new SwipeLayout.OnRevealListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onReveal(View child, SwipeLayout.DragEdge edge, float fraction, int distance) {
|
public void onReveal(View child, SwipeLayout.DragEdge edge, float fraction, int distance) {
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,26 @@
|
||||||
android:layout_height="match_parent" />
|
android:layout_height="match_parent" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:tag="Bottom3"
|
||||||
|
android:id="@+id/starbott"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/bottom_wrapper_child1"
|
||||||
|
android:background="#BDBEC2"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/star"
|
||||||
|
android:layout_alignParentTop="true"
|
||||||
|
android:layout_centerHorizontal="true"
|
||||||
|
android:src="@drawable/star"
|
||||||
|
android:layout_width="20dp"
|
||||||
|
android:layout_height="20dp" />
|
||||||
|
</RelativeLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:padding="10dp"
|
android:padding="10dp"
|
||||||
android:background="#ffffff"
|
android:background="#ffffff"
|
||||||
|
|
|
||||||
|
|
@ -836,7 +836,7 @@ public class SwipeLayout extends FrameLayout {
|
||||||
|
|
||||||
if (touching != null) touching.setPressed(true);
|
if (touching != null) touching.setPressed(true);
|
||||||
return true;
|
return true;
|
||||||
case MotionEvent.ACTION_MOVE:{
|
case MotionEvent.ACTION_MOVE: {
|
||||||
float distanceX = event.getRawX() - sX;
|
float distanceX = event.getRawX() - sX;
|
||||||
float distanceY = event.getRawY() - sY;
|
float distanceY = event.getRawY() - sY;
|
||||||
float angle = Math.abs(distanceY / distanceX);
|
float angle = Math.abs(distanceY / distanceX);
|
||||||
|
|
@ -846,13 +846,13 @@ public class SwipeLayout extends FrameLayout {
|
||||||
if (angle < 45) {
|
if (angle < 45) {
|
||||||
if (mLeftIndex != -1 && distanceX > 0 && isLeftSwipeEnabled()) {
|
if (mLeftIndex != -1 && distanceX > 0 && isLeftSwipeEnabled()) {
|
||||||
mCurrentDirectionIndex = mLeftIndex;
|
mCurrentDirectionIndex = mLeftIndex;
|
||||||
} else if (mRightIndex != -1 && isRightSwipeEnabled()) {
|
} else if (mRightIndex != -1 && distanceX < 0 && isRightSwipeEnabled()) {
|
||||||
mCurrentDirectionIndex = mRightIndex;
|
mCurrentDirectionIndex = mRightIndex;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (mTopIndex != -1 && distanceY < 0 && isTopSwipeEnabled()) {
|
if (mTopIndex != -1 && distanceY > 0 && isTopSwipeEnabled()) {
|
||||||
mCurrentDirectionIndex = mTopIndex;
|
mCurrentDirectionIndex = mTopIndex;
|
||||||
} else if (mBottomIndex != -1 && isBottomSwipeEnabled()) {
|
} else if (mBottomIndex != -1 && distanceY < 0 && isBottomSwipeEnabled()) {
|
||||||
mCurrentDirectionIndex = mBottomIndex;
|
mCurrentDirectionIndex = mBottomIndex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1159,12 +1159,11 @@ public class SwipeLayout extends FrameLayout {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pass the id of the view if set, otherwise pass -1
|
// Pass the id of the view if set, otherwise pass -1
|
||||||
public void setBottomViewIds (int left, int right, int top, int bottom) {
|
public void setBottomViewIds(int left, int right, int top, int bottom) {
|
||||||
if (mDragEdges.contains(DragEdge.Left)) {
|
if (mDragEdges.contains(DragEdge.Left)) {
|
||||||
if (left == -1) {
|
if (left == -1) {
|
||||||
mBottomViewIdsSet = false;
|
mBottomViewIdsSet = false;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
mBottomViewIdMap.put(DragEdge.Left, left);
|
mBottomViewIdMap.put(DragEdge.Left, left);
|
||||||
mBottomViewIdsSet = true;
|
mBottomViewIdsSet = true;
|
||||||
}
|
}
|
||||||
|
|
@ -1172,8 +1171,7 @@ public class SwipeLayout extends FrameLayout {
|
||||||
if (mDragEdges.contains(DragEdge.Right)) {
|
if (mDragEdges.contains(DragEdge.Right)) {
|
||||||
if (right == -1) {
|
if (right == -1) {
|
||||||
mBottomViewIdsSet = false;
|
mBottomViewIdsSet = false;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
mBottomViewIdMap.put(DragEdge.Right, right);
|
mBottomViewIdMap.put(DragEdge.Right, right);
|
||||||
mBottomViewIdsSet = true;
|
mBottomViewIdsSet = true;
|
||||||
}
|
}
|
||||||
|
|
@ -1181,8 +1179,7 @@ public class SwipeLayout extends FrameLayout {
|
||||||
if (mDragEdges.contains(DragEdge.Top)) {
|
if (mDragEdges.contains(DragEdge.Top)) {
|
||||||
if (top == -1) {
|
if (top == -1) {
|
||||||
mBottomViewIdsSet = false;
|
mBottomViewIdsSet = false;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
mBottomViewIdMap.put(DragEdge.Top, top);
|
mBottomViewIdMap.put(DragEdge.Top, top);
|
||||||
mBottomViewIdsSet = true;
|
mBottomViewIdsSet = true;
|
||||||
}
|
}
|
||||||
|
|
@ -1190,13 +1187,13 @@ public class SwipeLayout extends FrameLayout {
|
||||||
if (mDragEdges.contains(DragEdge.Bottom)) {
|
if (mDragEdges.contains(DragEdge.Bottom)) {
|
||||||
if (bottom == -1) {
|
if (bottom == -1) {
|
||||||
mBottomViewIdsSet = false;
|
mBottomViewIdsSet = false;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
mBottomViewIdMap.put(DragEdge.Bottom, bottom);
|
mBottomViewIdMap.put(DragEdge.Bottom, bottom);
|
||||||
mBottomViewIdsSet = true;
|
mBottomViewIdsSet = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum Status {
|
public enum Status {
|
||||||
Middle,
|
Middle,
|
||||||
Open,
|
Open,
|
||||||
|
|
@ -1305,7 +1302,8 @@ public class SwipeLayout extends FrameLayout {
|
||||||
|
|
||||||
int l = getPaddingLeft(), t = getPaddingTop();
|
int l = getPaddingLeft(), t = getPaddingTop();
|
||||||
|
|
||||||
if (xvel < 0 && mDragEdges.get(mCurrentDirectionIndex) == DragEdge.Right) l -= mDragDistance;
|
if (xvel < 0 && mDragEdges.get(mCurrentDirectionIndex) == DragEdge.Right)
|
||||||
|
l -= mDragDistance;
|
||||||
if (xvel > 0 && mDragEdges.get(mCurrentDirectionIndex) == DragEdge.Left) l += mDragDistance;
|
if (xvel > 0 && mDragEdges.get(mCurrentDirectionIndex) == DragEdge.Left) l += mDragDistance;
|
||||||
|
|
||||||
if (yvel > 0 && mDragEdges.get(mCurrentDirectionIndex) == DragEdge.Top) t += mDragDistance;
|
if (yvel > 0 && mDragEdges.get(mCurrentDirectionIndex) == DragEdge.Top) t += mDragDistance;
|
||||||
|
|
@ -1362,7 +1360,7 @@ public class SwipeLayout extends FrameLayout {
|
||||||
case Bottom:
|
case Bottom:
|
||||||
mCurrentDirectionIndex = mBottomIndex;
|
mCurrentDirectionIndex = mBottomIndex;
|
||||||
}
|
}
|
||||||
open (true, true);
|
open(true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void open(boolean smooth, DragEdge edge) {
|
public void open(boolean smooth, DragEdge edge) {
|
||||||
|
|
@ -1376,9 +1374,9 @@ public class SwipeLayout extends FrameLayout {
|
||||||
case Bottom:
|
case Bottom:
|
||||||
mCurrentDirectionIndex = mBottomIndex;
|
mCurrentDirectionIndex = mBottomIndex;
|
||||||
}
|
}
|
||||||
open (smooth, true);
|
open(smooth, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void open(boolean smooth, boolean notify, DragEdge edge) {
|
public void open(boolean smooth, boolean notify, DragEdge edge) {
|
||||||
switch (edge) {
|
switch (edge) {
|
||||||
case Left:
|
case Left:
|
||||||
|
|
@ -1390,9 +1388,9 @@ public class SwipeLayout extends FrameLayout {
|
||||||
case Bottom:
|
case Bottom:
|
||||||
mCurrentDirectionIndex = mBottomIndex;
|
mCurrentDirectionIndex = mBottomIndex;
|
||||||
}
|
}
|
||||||
open (smooth, notify);
|
open(smooth, notify);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* smoothly close surface.
|
* smoothly close surface.
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue