Guy Carmeli 8 years ago
parent
commit
c40dbecdc6

+ 46
- 44
android/app/src/main/java/com/reactnativenavigation/views/FloatingActionButtonCoordinator.java View File

34
         collapsedFab.setOnClickListener(new View.OnClickListener() {
34
         collapsedFab.setOnClickListener(new View.OnClickListener() {
35
             @Override
35
             @Override
36
             public void onClick(View v) {
36
             public void onClick(View v) {
37
-                collapsedFab.animate()
38
-                        .alpha(0)
39
-                        .setDuration(crossFadeAnimationDuration)
40
-                        .rotation(90)
41
-                        .setListener(new AnimatorListenerAdapter() {
42
-                            @Override
43
-                            public void onAnimationEnd(Animator animation) {
44
-                                collapsedFab.setVisibility(View.GONE);
45
-                            }
46
-                        })
47
-                        .start();
48
-                expendedFab.animate()
49
-                        .alpha(1)
50
-                        .setDuration(crossFadeAnimationDuration)
51
-                        .rotation(0)
52
-                        .setListener(new AnimatorListenerAdapter() {
53
-                            @Override
54
-                            public void onAnimationStart(Animator animation) {
55
-                                expendedFab.setVisibility(View.VISIBLE);
56
-                            }
57
-                        })
58
-                        .start();
37
+                hideCollapsed();
38
+                showExpended();
59
             }
39
             }
60
         });
40
         });
61
     }
41
     }
67
         expendedFab.setOnClickListener(new View.OnClickListener() {
47
         expendedFab.setOnClickListener(new View.OnClickListener() {
68
             @Override
48
             @Override
69
             public void onClick(View v) {
49
             public void onClick(View v) {
70
-                expendedFab.animate()
71
-                        .alpha(0)
72
-                        .setDuration(crossFadeAnimationDuration)
73
-                        .rotation(-90)
74
-                        .setListener(new AnimatorListenerAdapter() {
75
-                            @Override
76
-                            public void onAnimationEnd(Animator animation) {
77
-                                expendedFab.setVisibility(View.GONE);
78
-                            }
79
-                        })
80
-                        .start();
81
-                collapsedFab.animate()
82
-                        .alpha(1)
83
-                        .setDuration(crossFadeAnimationDuration)
84
-                        .rotation(0)
85
-                        .setListener(new AnimatorListenerAdapter() {
86
-                            @Override
87
-                            public void onAnimationStart(Animator animation) {
88
-                                collapsedFab.setVisibility(View.VISIBLE);
89
-                            }
90
-                        })
91
-                        .start();
50
+                hideExpended();
51
+                showCollapsed();
92
             }
52
             }
93
         });
53
         });
94
     }
54
     }
95
 
55
 
56
+    private void hideCollapsed() {
57
+        animateFab(collapsedFab, 0, 90);
58
+    }
59
+
60
+    private void showExpended() {
61
+        animateFab(expendedFab, 1, 0);
62
+    }
63
+
64
+    private void showCollapsed() {
65
+        animateFab(collapsedFab, 1, 0);
66
+    }
67
+
68
+    private void hideExpended() {
69
+        animateFab(expendedFab, 0, -90);
70
+    }
71
+
72
+    private void animateFab(final FloatingActionButton fab, final int alpha, int rotation) {
73
+        fab.animate()
74
+                .alpha(alpha)
75
+                .setDuration(crossFadeAnimationDuration)
76
+                .rotation(rotation)
77
+                .setListener(new AnimatorListenerAdapter() {
78
+                    @Override
79
+                    public void onAnimationStart(Animator animation) {
80
+                        if (fab.getVisibility() == View.GONE) {
81
+                            fab.setVisibility(View.VISIBLE);
82
+                        }
83
+                    }
84
+
85
+                    @Override
86
+                    public void onAnimationEnd(Animator animation) {
87
+                        fab.setVisibility(alpha == 0 ? View.GONE : View.VISIBLE);
88
+                    }
89
+                })
90
+                .start();
91
+    }
92
+
93
+
96
     private FloatingActionButton createFab(Drawable icon) {
94
     private FloatingActionButton createFab(Drawable icon) {
97
         FloatingActionButton fab = new FloatingActionButton(parent.getContext());
95
         FloatingActionButton fab = new FloatingActionButton(parent.getContext());
98
         fab.setImageDrawable(icon);
96
         fab.setImageDrawable(icon);
112
     private void setStyle() {
110
     private void setStyle() {
113
 
111
 
114
     }
112
     }
113
+
114
+    public void show() {
115
+
116
+    }
115
 }
117
 }

+ 0
- 1
android/app/src/main/java/com/reactnativenavigation/views/SnackbarAndFabContainer.java View File

9
 import com.reactnativenavigation.params.SnackbarParams;
9
 import com.reactnativenavigation.params.SnackbarParams;
10
 
10
 
11
 public class SnackbarAndFabContainer extends CoordinatorLayout implements Snakbar.OnDismissListener, ScreenChangeBroadcastReceiver.OnScreenChangeListener {
11
 public class SnackbarAndFabContainer extends CoordinatorLayout implements Snakbar.OnDismissListener, ScreenChangeBroadcastReceiver.OnScreenChangeListener {
12
-    private static final String TAG = "SnackbarAndFabContainer";
13
     private Snakbar snakbar;
12
     private Snakbar snakbar;
14
     private ScreenChangeBroadcastReceiver screenChangeBroadcastReceiver;
13
     private ScreenChangeBroadcastReceiver screenChangeBroadcastReceiver;
15
     private FloatingActionButtonCoordinator actionButtonCoordinator;
14
     private FloatingActionButtonCoordinator actionButtonCoordinator;