blob: 8afb5db6b02651801157bb4ff6ce8be654edf32e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
package ca.allanwang.kau.swipe;
import android.annotation.TargetApi;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.ViewGroup;
/**
* Created by Mr.Jude on 2015/8/3.
* 每个滑动页面的管理
*/
public class SwipeBackPage {
//仅为判断是否需要将mSwipeBackLayout注入进去
private boolean mEnable = true;
private boolean mRelativeEnable = false;
Activity mActivity;
SwipeBackLayout mSwipeBackLayout;
RelateSlider slider;
SwipeBackPage(Activity activity){
this.mActivity = activity;
}
//页面的回调用于配置滑动效果
void onCreate(){
mActivity.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
mActivity.getWindow().getDecorView().setBackgroundColor(Color.TRANSPARENT);
mSwipeBackLayout = new SwipeBackLayout(mActivity);
mSwipeBackLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
slider = new RelateSlider(this);
}
void onPostCreate(){
handleLayout();
}
@TargetApi(11)
public SwipeBackPage setSwipeRelateEnable(boolean enable){
mRelativeEnable = enable;
slider.setEnable(enable);
return this;
}
public SwipeBackPage setSwipeRelateOffset(int offset){
slider.setOffset(offset);
return this;
}
//是否可滑动关闭
public SwipeBackPage setSwipeBackEnable(boolean enable) {
mEnable = enable;
mSwipeBackLayout.setEnableGesture(enable);
handleLayout();
return this;
}
private void handleLayout(){
if (mEnable||mRelativeEnable){
mSwipeBackLayout.attachToActivity(mActivity);
}else {
mSwipeBackLayout.removeFromActivity(mActivity);
}
}
//可滑动的范围。百分比。200表示为左边200px的屏幕
public SwipeBackPage setSwipeEdge(int swipeEdge){
mSwipeBackLayout.setEdgeSize(swipeEdge);
return this;
}
//可滑动的范围。百分比。0.2表示为左边20%的屏幕
public SwipeBackPage setSwipeEdgePercent(float swipeEdgePercent){
mSwipeBackLayout.setEdgeSizePercent(swipeEdgePercent);
return this;
}
//对横向滑动手势的敏感程度。0为迟钝 1为敏感
public SwipeBackPage setSwipeSensitivity(float sensitivity){
mSwipeBackLayout.setSensitivity(mActivity, sensitivity);
return this;
}
//底层阴影颜色
public SwipeBackPage setScrimColor(int color){
mSwipeBackLayout.setScrimColor(color);
return this;
}
//触发关闭Activity百分比
public SwipeBackPage setClosePercent(float percent){
mSwipeBackLayout.setScrollThreshold(percent);
return this;
}
public SwipeBackPage setDisallowInterceptTouchEvent(boolean disallowIntercept){
mSwipeBackLayout.setDisallowInterceptTouchEvent(disallowIntercept);
return this;
}
public SwipeBackPage addListener(SwipeListener listener){
mSwipeBackLayout.addSwipeListener(listener);
return this;
}
public SwipeBackPage removeListener(SwipeListener listener){
mSwipeBackLayout.removeSwipeListener(listener);
return this;
}
public SwipeBackLayout getSwipeBackLayout() {
return mSwipeBackLayout;
}
public void scrollToFinishActivity() {
mSwipeBackLayout.scrollToFinishActivity();
}
}
|