Browse Source

Fix ContextualMenu show animation

Also removes ContextualMenu after it is dismissed
Guy Carmeli 8 years ago
parent
commit
3f6bbd776c

+ 7
- 1
android/app/src/main/java/com/reactnativenavigation/views/ContextualMenu.java View File

2
 
2
 
3
 import android.content.Context;
3
 import android.content.Context;
4
 import android.view.Menu;
4
 import android.view.Menu;
5
+import android.view.ViewManager;
5
 
6
 
6
 import com.facebook.react.bridge.Callback;
7
 import com.facebook.react.bridge.Callback;
7
 import com.reactnativenavigation.NavigationApplication;
8
 import com.reactnativenavigation.NavigationApplication;
71
     }
72
     }
72
 
73
 
73
     public void dismiss() {
74
     public void dismiss() {
74
-        hide();
75
+        hide(new Runnable() {
76
+            @Override
77
+            public void run() {
78
+                ((ViewManager) getParent()).removeView(ContextualMenu.this);
79
+            }
80
+        });
75
         NavigationApplication.instance.sendNavigatorEvent("contextualMenuDismissed", navigatorEventId);
81
         NavigationApplication.instance.sendNavigatorEvent("contextualMenuDismissed", navigatorEventId);
76
     }
82
     }
77
 }
83
 }

+ 16
- 5
android/app/src/main/java/com/reactnativenavigation/views/TitleBar.java View File

1
 package com.reactnativenavigation.views;
1
 package com.reactnativenavigation.views;
2
 
2
 
3
+import android.animation.Animator;
4
+import android.animation.AnimatorListenerAdapter;
3
 import android.content.Context;
5
 import android.content.Context;
4
 import android.graphics.drawable.Drawable;
6
 import android.graphics.drawable.Drawable;
7
+import android.support.annotation.Nullable;
5
 import android.support.v7.widget.ActionMenuView;
8
 import android.support.v7.widget.ActionMenuView;
6
 import android.support.v7.widget.Toolbar;
9
 import android.support.v7.widget.Toolbar;
7
 import android.view.Menu;
10
 import android.view.Menu;
141
     }
144
     }
142
 
145
 
143
     public void hide() {
146
     public void hide() {
147
+        hide(null);
148
+    }
149
+
150
+    public void hide(@Nullable final Runnable onHidden) {
144
         animate()
151
         animate()
145
                 .alpha(0)
152
                 .alpha(0)
146
                 .setDuration(200)
153
                 .setDuration(200)
147
-                .setInterpolator(new AccelerateInterpolator());
154
+                .setInterpolator(new AccelerateInterpolator())
155
+                .setListener(new AnimatorListenerAdapter() {
156
+                    @Override
157
+                    public void onAnimationEnd(Animator animation) {
158
+                        if (onHidden != null) {
159
+                            onHidden.run();
160
+                        }
161
+                    }
162
+                });
148
     }
163
     }
149
 
164
 
150
     public void show() {
165
     public void show() {
151
-        if (getAlpha() == 1) {
152
-            return;
153
-        }
154
-
155
         setAlpha(0);
166
         setAlpha(0);
156
         animate()
167
         animate()
157
                 .alpha(1)
168
                 .alpha(1)