瀏覽代碼

Fix Snackbar not dismissing bug

When Snackbar was displayed while another Snackbar was displayed,
the last ref to the current Snackbar was removed and it didn't get removed
when onScreenChange was called.
Guy Carmeli 8 年之前
父節點
當前提交
9e3715e523

+ 4
- 2
android/app/src/main/java/com/reactnativenavigation/views/SnackbarAndFabContainer.java 查看文件

@@ -36,8 +36,10 @@ public class SnackbarAndFabContainer extends CoordinatorLayout implements Snakba
36 36
     }
37 37
 
38 38
     @Override
39
-    public void onDismiss() {
40
-        snakbar = null;
39
+    public void onDismiss(Snakbar snakbar) {
40
+        if (this.snakbar == snakbar) {
41
+            this.snakbar = null;
42
+        }
41 43
     }
42 44
 
43 45
     public void destroy() {

+ 2
- 2
android/app/src/main/java/com/reactnativenavigation/views/Snakbar.java 查看文件

@@ -13,7 +13,7 @@ public class Snakbar {
13 13
     private Snackbar snackbar;
14 14
 
15 15
     public interface OnDismissListener {
16
-        void onDismiss();
16
+        void onDismiss(Snakbar snakbar);
17 17
     }
18 18
 
19 19
     public void show() {
@@ -68,7 +68,7 @@ public class Snakbar {
68 68
 
69 69
             @Override
70 70
             public void onViewDetachedFromWindow(View v) {
71
-                parent.onDismiss();
71
+                parent.onDismiss(Snakbar.this);
72 72
             }
73 73
         });
74 74
     }