Guy Carmeli 8 gadus atpakaļ
vecāks
revīzija
3f75ad2f2c

+ 5
- 1
android/app/src/main/java/com/reactnativenavigation/layouts/ScreenLayout.java Parādīt failu

35
 
35
 
36
     private void createViews() {
36
     private void createViews() {
37
         addTopBar();
37
         addTopBar();
38
+        addTitleBar();
39
+        addContentView();
40
+    }
41
+
42
+    private void addTitleBar() {
38
         topBar.addTitleBarAndSetButtons(screenParams.buttons);
43
         topBar.addTitleBarAndSetButtons(screenParams.buttons);
39
         topBar.setTitle(screenParams.title);
44
         topBar.setTitle(screenParams.title);
40
-        addContentView();
41
     }
45
     }
42
 
46
 
43
     private void addTopBar() {
47
     private void addTopBar() {

+ 11
- 0
android/app/src/main/java/com/reactnativenavigation/params/parsers/Parser.java Parādīt failu

1
+package com.reactnativenavigation.params.parsers;
2
+
3
+import android.os.Bundle;
4
+
5
+public class Parser {
6
+
7
+    protected static boolean hasKey(Bundle bundle, String key) {
8
+        return bundle.keySet().contains(key);
9
+    }
10
+
11
+}

+ 10
- 4
android/app/src/main/java/com/reactnativenavigation/params/parsers/TitleBarButtonParamsParser.java Parādīt failu

8
 import java.util.ArrayList;
8
 import java.util.ArrayList;
9
 import java.util.List;
9
 import java.util.List;
10
 
10
 
11
-public class TitleBarButtonParamsParser {
11
+public class TitleBarButtonParamsParser extends Parser {
12
     public static List<TitleBarButtonParams> parse(Bundle params) {
12
     public static List<TitleBarButtonParams> parse(Bundle params) {
13
         List<TitleBarButtonParams> result = new ArrayList<>();
13
         List<TitleBarButtonParams> result = new ArrayList<>();
14
         if (params == null) {
14
         if (params == null) {
23
 
23
 
24
     private static TitleBarButtonParams parseItem(Bundle bundle) {
24
     private static TitleBarButtonParams parseItem(Bundle bundle) {
25
         TitleBarButtonParams result = new TitleBarButtonParams();
25
         TitleBarButtonParams result = new TitleBarButtonParams();
26
-        result.label = bundle.getString("label");
27
-        result.icon = ImageLoader.loadImage(bundle.getString("icon"));
26
+        result.label = bundle.getString("title");
27
+        if (hasKey(bundle,"icon")) {
28
+            result.icon = ImageLoader.loadImage(bundle.getString("icon"));
29
+        }
28
         result.color = ColorParser.parse(bundle.getString("color"));
30
         result.color = ColorParser.parse(bundle.getString("color"));
29
         result.showAsAction = parseShowAsAction(bundle.getString("showAsAction"));
31
         result.showAsAction = parseShowAsAction(bundle.getString("showAsAction"));
30
-        result.enabled = bundle.getBoolean("enabled");
32
+        result.enabled = bundle.getBoolean("enabled", true);
31
         return result;
33
         return result;
32
     }
34
     }
33
 
35
 
34
     private static TitleBarButtonParams.ShowAsAction parseShowAsAction(String showAsAction) {
36
     private static TitleBarButtonParams.ShowAsAction parseShowAsAction(String showAsAction) {
37
+        if (showAsAction == null) {
38
+            return TitleBarButtonParams.ShowAsAction.IfRoom;
39
+        }
40
+
35
         switch (showAsAction) {
41
         switch (showAsAction) {
36
             case "always":
42
             case "always":
37
                 return TitleBarButtonParams.ShowAsAction.Always;
43
                 return TitleBarButtonParams.ShowAsAction.Always;

+ 5
- 2
src/Screen.js Parādīt failu

6
 } from 'react-native';
6
 } from 'react-native';
7
 import platformSpecific from './deprecated/platformSpecificDeprecated';
7
 import platformSpecific from './deprecated/platformSpecificDeprecated';
8
 import Navigation from './Navigation';
8
 import Navigation from './Navigation';
9
+import _ from 'lodash';
9
 
10
 
10
 const _allNavigatorEventHandlers = {};
11
 const _allNavigatorEventHandlers = {};
11
 
12
 
137
 
138
 
138
   constructor(props) {
139
   constructor(props) {
139
     super(props);
140
     super(props);
140
-    if (props.navigatorID) {
141
-      this.navigator = new Navigator(props.navigatorID, props.navigatorEventID);
141
+    // TODO: remove this shit
142
+    if (!props.navigatorID) {
143
+      props.navigatorID = _.uniqueId('navigatorId');
142
     }
144
     }
145
+    this.navigator = new Navigator(props.navigatorID, props.navigatorEventID);
143
   }
146
   }
144
 
147
 
145
   componentWillUnmount() {
148
   componentWillUnmount() {