|
@@ -18,7 +18,7 @@ public class SlidingOverlay {
|
18
|
18
|
Hidden, AnimateHide, Shown, AnimateShow
|
19
|
19
|
}
|
20
|
20
|
|
21
|
|
- private final ContentView view;
|
|
21
|
+ private ContentView view = null;
|
22
|
22
|
private final RelativeLayout parent;
|
23
|
23
|
private final SlidingOverlayParams params;
|
24
|
24
|
|
|
@@ -33,7 +33,6 @@ public class SlidingOverlay {
|
33
|
33
|
public SlidingOverlay(RelativeLayout parent, SlidingOverlayParams params) {
|
34
|
34
|
this.parent = parent;
|
35
|
35
|
this.params = params;
|
36
|
|
- view = createSlidingOverlayView(params);
|
37
|
36
|
}
|
38
|
37
|
|
39
|
38
|
public void setSlidingListener(SlidingListener listener) {
|
|
@@ -45,6 +44,7 @@ public class SlidingOverlay {
|
45
|
44
|
}
|
46
|
45
|
|
47
|
46
|
public void show() {
|
|
47
|
+ view = createSlidingOverlayView(params);
|
48
|
48
|
parent.addView(view);
|
49
|
49
|
|
50
|
50
|
final PeekingAnimator animator = new PeekingAnimator(view, params.position, true);
|
|
@@ -87,6 +87,12 @@ public class SlidingOverlay {
|
87
|
87
|
animator.animate();
|
88
|
88
|
}
|
89
|
89
|
|
|
90
|
+ public void destroy() {
|
|
91
|
+ visibilityState = VisibilityState.Hidden;
|
|
92
|
+ view.unmountReactView();
|
|
93
|
+ parent.removeView(view);
|
|
94
|
+ }
|
|
95
|
+
|
90
|
96
|
public boolean isShowing() {
|
91
|
97
|
return VisibilityState.AnimateShow == visibilityState;
|
92
|
98
|
}
|
|
@@ -119,9 +125,7 @@ public class SlidingOverlay {
|
119
|
125
|
}
|
120
|
126
|
|
121
|
127
|
protected void onSlidingOverlayEnd(ContentView view) {
|
122
|
|
- visibilityState = VisibilityState.Hidden;
|
123
|
|
- view.unmountReactView();
|
124
|
|
- parent.removeView(view);
|
|
128
|
+ destroy();
|
125
|
129
|
|
126
|
130
|
if (listener != null) {
|
127
|
131
|
listener.onSlidingOverlayGone();
|