diff --git a/android/app/src/main/java/com/reactnativenavigation/views/TopBar.java b/android/app/src/main/java/com/reactnativenavigation/views/TopBar.java index dfda98caa99..9b284ad67e4 100644 --- a/android/app/src/main/java/com/reactnativenavigation/views/TopBar.java +++ b/android/app/src/main/java/com/reactnativenavigation/views/TopBar.java @@ -10,6 +10,7 @@ import android.support.v7.app.ActionBar; import android.view.Gravity; import android.view.ViewGroup; +import android.view.ViewOutlineProvider; import android.widget.FrameLayout; import com.facebook.react.bridge.Callback; @@ -36,12 +37,16 @@ public class TopBar extends AppBarLayout { private VisibilityAnimator visibilityAnimator; @Nullable private Pair reactView; + private ViewOutlineProvider outlineProvider; public TopBar(Context context) { super(context); setId(ViewUtils.generateViewId()); createTopBarVisibilityAnimator(); createLayout(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + outlineProvider = getOutlineProvider(); + } } private void createTopBarVisibilityAnimator() { @@ -167,19 +172,17 @@ public void setStyle(StyleParams styleParams) { titleBar.setStyle(styleParams); setReactView(styleParams); setTopTabsStyle(styleParams); - if (!styleParams.topBarElevationShadowEnabled) { - disableElevationShadow(); - } + setElevationEnabled(styleParams.topBarElevationShadowEnabled); } private void setTransparent() { setBackgroundColor(Color.TRANSPARENT); - disableElevationShadow(); + setElevationEnabled(false); } - private void disableElevationShadow() { + private void setElevationEnabled (boolean enabled) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - setOutlineProvider(null); + setOutlineProvider(enabled ? outlineProvider : null); } }