瀏覽代碼

Pass collapsingToolBarComponent param from Java

Guy Carmeli 8 年之前
父節點
當前提交
4a9bd78bad

+ 5
- 0
android/app/src/main/java/com/reactnativenavigation/params/CollapsingTopBarParams.java 查看文件

@@ -6,10 +6,15 @@ import com.reactnativenavigation.views.collapsingToolbar.behaviours.CollapseBeha
6 6
 
7 7
 public class CollapsingTopBarParams {
8 8
     public @Nullable String imageUri;
9
+    public @Nullable String reactViewId;
9 10
     public StyleParams.Color scrimColor;
10 11
     public CollapseBehaviour collapseBehaviour;
11 12
 
12 13
     public boolean hasBackgroundImage() {
13 14
         return imageUri != null;
14 15
     }
16
+
17
+    public boolean hasReactView() {
18
+        return reactViewId != null;
19
+    }
15 20
 }

+ 15
- 5
android/app/src/main/java/com/reactnativenavigation/params/parsers/CollapsingTopBarParamsParser.java 查看文件

@@ -22,19 +22,25 @@ class CollapsingTopBarParamsParser extends Parser {
22 22
     }
23 23
 
24 24
     public CollapsingTopBarParams parse() {
25
-        if (!hasBackgroundImage() && !titleBarHideOnScroll) {
25
+        if (!validateParams()) {
26 26
             return null;
27 27
         }
28
-
29 28
         CollapsingTopBarParams result = new CollapsingTopBarParams();
30
-        if (hasBackgroundImage()) {
31
-            result.imageUri = params.getString("collapsingToolBarImage");
32
-        }
29
+        result.imageUri = params.getString("collapsingToolBarImage", null);
30
+        result.reactViewId = params.getString("collapsingToolBarComponent", null);
33 31
         result.scrimColor = getColor(params, "collapsingToolBarCollapsedColor", new StyleParams.Color(Color.WHITE));
34 32
         result.collapseBehaviour = getCollapseBehaviour();
35 33
         return result;
36 34
     }
37 35
 
36
+    private boolean validateParams() {
37
+        return titleBarHideOnScroll || hasImageOrReactView();
38
+    }
39
+
40
+    private boolean hasImageOrReactView() {
41
+        return hasBackgroundImage() || hasReactView();
42
+    }
43
+
38 44
     private CollapseBehaviour getCollapseBehaviour() {
39 45
         if (hasBackgroundImage()) {
40 46
             return new CollapseTopBarBehaviour();
@@ -48,4 +54,8 @@ class CollapsingTopBarParamsParser extends Parser {
48 54
     private boolean hasBackgroundImage() {
49 55
         return params.containsKey("collapsingToolBarImage");
50 56
     }
57
+
58
+    private boolean hasReactView() {
59
+        return params.containsKey("collapsingToolBarComponent");
60
+    }
51 61
 }

+ 1
- 0
src/deprecated/platformSpecificDeprecated.android.js 查看文件

@@ -126,6 +126,7 @@ function convertStyleParams(originalStyleObject) {
126 126
     topBarTranslucent: originalStyleObject.navBarTranslucent,
127 127
     topBarElevationShadowEnabled: originalStyleObject.topBarElevationShadowEnabled,
128 128
     collapsingToolBarImage: originalStyleObject.collapsingToolBarImage,
129
+    collapsingToolBarComponent: originalStyleObject.collapsingToolBarComponent,
129 130
     collapsingToolBarCollapsedColor: processColor(originalStyleObject.collapsingToolBarCollapsedColor),
130 131
     titleBarHidden: originalStyleObject.navBarHidden,
131 132
     titleBarHideOnScroll: originalStyleObject.navBarHideOnScroll,