Browse Source

Add topBarElevationShadowEnabled style property (#579)

related to #557 #474 #125
Guy Carmeli 8 years ago
parent
commit
5721f7ba17

+ 1
- 0
android/app/src/main/java/com/reactnativenavigation/params/StyleParams.java View File

41
     public Color topBarColor;
41
     public Color topBarColor;
42
     public CollapsingTopBarParams collapsingTopBarParams;
42
     public CollapsingTopBarParams collapsingTopBarParams;
43
     public boolean topBarHidden;
43
     public boolean topBarHidden;
44
+    public boolean topBarElevationShadowEnabled;
44
     public boolean topTabsHidden;
45
     public boolean topTabsHidden;
45
     public boolean drawScreenBelowTopBar;
46
     public boolean drawScreenBelowTopBar;
46
 
47
 

+ 5
- 0
android/app/src/main/java/com/reactnativenavigation/params/parsers/StyleParamsParser.java View File

29
         result.collapsingTopBarParams = new CollapsingTopBarParamsParser(params).parse();
29
         result.collapsingTopBarParams = new CollapsingTopBarParamsParser(params).parse();
30
         result.titleBarHidden = getBoolean("titleBarHidden", getDefaultTopBarHidden());
30
         result.titleBarHidden = getBoolean("titleBarHidden", getDefaultTopBarHidden());
31
         result.topBarTransparent = getBoolean("topBarTransparent", getDefaultTopBarHidden());
31
         result.topBarTransparent = getBoolean("topBarTransparent", getDefaultTopBarHidden());
32
+        result.topBarElevationShadowEnabled = getBoolean("topBarElevationShadowEnabled", getDefaultTopBarElevationShadowEnabled());
32
         result.titleBarTitleColor = getColor("titleBarTitleColor", getDefaultTitleBarColor());
33
         result.titleBarTitleColor = getColor("titleBarTitleColor", getDefaultTitleBarColor());
33
         result.topBarTranslucent = getBoolean("topBarTranslucent", getDefaultTopBarTranslucent());
34
         result.topBarTranslucent = getBoolean("topBarTranslucent", getDefaultTopBarTranslucent());
34
         result.titleBarHideOnScroll = getBoolean("titleBarHideOnScroll", getDefaultTitleBarHideOnScroll());
35
         result.titleBarHideOnScroll = getBoolean("titleBarHideOnScroll", getDefaultTitleBarHideOnScroll());
173
         return AppStyle.appStyle != null && AppStyle.appStyle.topBarTransparent;
174
         return AppStyle.appStyle != null && AppStyle.appStyle.topBarTransparent;
174
     }
175
     }
175
 
176
 
177
+    private boolean getDefaultTopBarElevationShadowEnabled() {
178
+        return AppStyle.appStyle == null || AppStyle.appStyle.topBarElevationShadowEnabled;
179
+    }
180
+
176
     private boolean getDefaultTopBarTranslucent() {
181
     private boolean getDefaultTopBarTranslucent() {
177
         return AppStyle.appStyle != null && AppStyle.appStyle.topBarTranslucent;
182
         return AppStyle.appStyle != null && AppStyle.appStyle.topBarTranslucent;
178
     }
183
     }

+ 7
- 0
android/app/src/main/java/com/reactnativenavigation/views/TopBar.java View File

73
         setVisibility(styleParams.topBarHidden ? GONE : VISIBLE);
73
         setVisibility(styleParams.topBarHidden ? GONE : VISIBLE);
74
         titleBar.setStyle(styleParams);
74
         titleBar.setStyle(styleParams);
75
         setTopTabsStyle(styleParams);
75
         setTopTabsStyle(styleParams);
76
+        if (!styleParams.topBarElevationShadowEnabled) {
77
+            disableElevationShadow();
78
+        }
76
     }
79
     }
77
 
80
 
78
     private void setTransparent() {
81
     private void setTransparent() {
79
         setBackgroundColor(Color.TRANSPARENT);
82
         setBackgroundColor(Color.TRANSPARENT);
83
+        disableElevationShadow();
84
+    }
85
+
86
+    private void disableElevationShadow() {
80
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
87
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
81
             setOutlineProvider(null);
88
             setOutlineProvider(null);
82
         }
89
         }

+ 1
- 0
src/deprecated/platformSpecificDeprecated.android.js View File

120
     topBarColor: processColor(originalStyleObject.navBarBackgroundColor),
120
     topBarColor: processColor(originalStyleObject.navBarBackgroundColor),
121
     topBarTransparent: originalStyleObject.navBarTransparent,
121
     topBarTransparent: originalStyleObject.navBarTransparent,
122
     topBarTranslucent: originalStyleObject.navBarTranslucent,
122
     topBarTranslucent: originalStyleObject.navBarTranslucent,
123
+    topBarElevationShadowEnabled: originalStyleObject.topBarElevationShadowEnabled,
123
     collapsingToolBarImage: originalStyleObject.collapsingToolBarImage,
124
     collapsingToolBarImage: originalStyleObject.collapsingToolBarImage,
124
     collapsingToolBarCollapsedColor: processColor(originalStyleObject.collapsingToolBarCollapsedColor),
125
     collapsingToolBarCollapsedColor: processColor(originalStyleObject.collapsingToolBarCollapsedColor),
125
     titleBarHidden: originalStyleObject.navBarHidden,
126
     titleBarHidden: originalStyleObject.navBarHidden,