Browse Source

Send bottomTabSelected event (#600)

The event is sent to the top most screen displayed in the current screenStack.
Guy Carmeli 7 years ago
parent
commit
e1d67727a4

+ 9
- 0
android/app/src/main/java/com/reactnativenavigation/layouts/BottomTabsLayout.java View File

7
 import android.widget.RelativeLayout;
7
 import android.widget.RelativeLayout;
8
 
8
 
9
 import com.aurelhubert.ahbottomnavigation.AHBottomNavigation;
9
 import com.aurelhubert.ahbottomnavigation.AHBottomNavigation;
10
+import com.facebook.react.bridge.Arguments;
10
 import com.facebook.react.bridge.Callback;
11
 import com.facebook.react.bridge.Callback;
12
+import com.facebook.react.bridge.WritableMap;
11
 import com.reactnativenavigation.NavigationApplication;
13
 import com.reactnativenavigation.NavigationApplication;
12
 import com.reactnativenavigation.events.EventBus;
14
 import com.reactnativenavigation.events.EventBus;
13
 import com.reactnativenavigation.events.ScreenChangedEvent;
15
 import com.reactnativenavigation.events.ScreenChangedEvent;
298
         hideCurrentStack();
300
         hideCurrentStack();
299
         showNewStack(position);
301
         showNewStack(position);
300
         EventBus.instance.post(new ScreenChangedEvent(getCurrentScreenStack().peek().getScreenParams()));
302
         EventBus.instance.post(new ScreenChangedEvent(getCurrentScreenStack().peek().getScreenParams()));
303
+        sendTabSelectedEventToJs();
301
         return true;
304
         return true;
302
     }
305
     }
303
 
306
 
307
+    private void sendTabSelectedEventToJs() {
308
+        WritableMap data = Arguments.createMap();
309
+        String navigatorEventId = getCurrentScreenStack().peek().getNavigatorEventId();
310
+        NavigationApplication.instance.getEventEmitter().sendNavigatorEvent("bottomTabSelected", navigatorEventId, data);
311
+    }
312
+
304
     private void showNewStack(int position) {
313
     private void showNewStack(int position) {
305
         showStackAndUpdateStyle(screenStacks[position]);
314
         showStackAndUpdateStyle(screenStacks[position]);
306
         currentStackIndex = position;
315
         currentStackIndex = position;