材料主题工具栏上的渐变背景

5

我有一个图片预览活动,其中包含一个覆盖的操作栏。我不希望这个视图具有完全不透明的颜色,因为当缩放时会遮挡图像。我创建了一个渐变来设置为背景:

<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>

我通过以下主题将此背景分配给我的工具栏:

<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>

在我的布局中:
<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"/>

当我打开这个活动时,似乎工具栏将该背景应用于所有子视图,导致如下图所示的重叠。我该如何防止这种重叠?
我已经尝试使用 backgroundTint 和 backgroundTintMode 进行调整,但似乎它们在低于 Lollipop 版本中不可用。
1个回答

7
似乎通过样式应用背景也会应用到所有嵌套项。我将样式背景设置为@android: color / transparent ,并在我的布局中使用:
<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"/>

结果完全符合我的要求:在此输入图片描述

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接