I have a photo preview activity that has an overlay actionbar. I don't want this view to have a full opaque color because it would obstruct the image when zoomed. I created a gradient to set as the background:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:type="linear"
android:startColor="@color/theme_main_color_40pct"
android:endColor="@color/theme_main_color_0pct"
android:angle="270"/>
</shape>
I assign this background to my toolbar via the following theme:
<style name="my_toolbar" >
<item name="android:background">@drawable/ab_gradient_purple</item>
<item name="android:minHeight">?attr/actionBarSize</item>
<item name="android:textColorPrimary">?attr/colorAccent</item>
<item name="android:textColorSecondary">@android:color/white</item>
</style>
In my layout:
<android.support.v7.widget.Toolbar
android:id="@id/toolbar"
app:theme="@style/my_toolbar"
android:elevation="5dp"
android:layout_gravity="top"
android:layout_height="wrap_content"
android:layout_width="match_parent"/>
When I open this activity, it looks like the toolbar is taking that background and applies it to all subviews, resulting in the picture below. How do I prevent this overlay?
I've tried playing with backgroundTint
and backgroundTintMode
, but it seems like they're not available for pre-lollipop.
It seems that applying the background through the style applies it too all nested items. I set the style background to @android:color/transparent
and in my layout:
<android.support.v7.widget.Toolbar
android:id="@id/toolbar"
app:theme="@style/my_toolbar"
android:background="@drawable/ab_gradient_purple"
android:elevation="5dp"
android:layout_gravity="top"
android:layout_height="wrap_content"
android:layout_width="match_parent"/>
The result is exactly what I was looking for:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With