Просмотр исходного кода

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 лет назад
Родитель
Сommit
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
     }