Przeglądaj źródła

Add topBarElevationShadowEnabled style property (#579)

related to #557 #474 #125
Guy Carmeli 8 lat temu
rodzic
commit
5721f7ba17

+ 1
- 0
android/app/src/main/java/com/reactnativenavigation/params/StyleParams.java Wyświetl plik

@@ -41,6 +41,7 @@ public class StyleParams {
41 41
     public Color topBarColor;
42 42
     public CollapsingTopBarParams collapsingTopBarParams;
43 43
     public boolean topBarHidden;
44
+    public boolean topBarElevationShadowEnabled;
44 45
     public boolean topTabsHidden;
45 46
     public boolean drawScreenBelowTopBar;
46 47
 

+ 5
- 0
android/app/src/main/java/com/reactnativenavigation/params/parsers/StyleParamsParser.java Wyświetl plik

@@ -29,6 +29,7 @@ public class StyleParamsParser {
29 29
         result.collapsingTopBarParams = new CollapsingTopBarParamsParser(params).parse();
30 30
         result.titleBarHidden = getBoolean("titleBarHidden", getDefaultTopBarHidden());
31 31
         result.topBarTransparent = getBoolean("topBarTransparent", getDefaultTopBarHidden());
32
+        result.topBarElevationShadowEnabled = getBoolean("topBarElevationShadowEnabled", getDefaultTopBarElevationShadowEnabled());
32 33
         result.titleBarTitleColor = getColor("titleBarTitleColor", getDefaultTitleBarColor());
33 34
         result.topBarTranslucent = getBoolean("topBarTranslucent", getDefaultTopBarTranslucent());
34 35
         result.titleBarHideOnScroll = getBoolean("titleBarHideOnScroll", getDefaultTitleBarHideOnScroll());
@@ -173,6 +174,10 @@ public class StyleParamsParser {
173 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 181
     private boolean getDefaultTopBarTranslucent() {
177 182
         return AppStyle.appStyle != null && AppStyle.appStyle.topBarTranslucent;
178 183
     }

+ 7
- 0
android/app/src/main/java/com/reactnativenavigation/views/TopBar.java Wyświetl plik

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

+ 1
- 0
src/deprecated/platformSpecificDeprecated.android.js Wyświetl plik

@@ -120,6 +120,7 @@ function convertStyleParams(originalStyleObject) {
120 120
     topBarColor: processColor(originalStyleObject.navBarBackgroundColor),
121 121
     topBarTransparent: originalStyleObject.navBarTransparent,
122 122
     topBarTranslucent: originalStyleObject.navBarTranslucent,
123
+    topBarElevationShadowEnabled: originalStyleObject.topBarElevationShadowEnabled,
123 124
     collapsingToolBarImage: originalStyleObject.collapsingToolBarImage,
124 125
     collapsingToolBarCollapsedColor: processColor(originalStyleObject.collapsingToolBarCollapsedColor),
125 126
     titleBarHidden: originalStyleObject.navBarHidden,