Android - Elevation无效

Elv*_*ira 3 android android-layout material-design android-elevation

我正在迁移Android应用程序以使用Material Design.为了验证我是否所做的一切正确,我创建了一个空活动来测试一些Material Design itens(FAB,凸起按钮,视图上的高程,卡片,列表等等).

按钮显示为OK,但视图的高程不是.我在互联网上搜索了一个答案,但没有找到答案.我没有使用填充,透明背景等.这是我的代码:

值-V21/styles.xml:

<resources>

    <style name="AppThemeNoActionBar" parent="AppTheme">
        <item name="android:navigationBarColor">@color/colorPrimary</item>
    </style>

    <style name="AppTheme" parent="MyMaterialTheme.Base">
        <item name="android:windowContentTransitions">true</item>
        <item name="android:windowAllowEnterTransitionOverlap">true</item>
        <item name="android:windowAllowReturnTransitionOverlap">true</item>
        <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
        <item name="android:windowSharedElementExitTransition">@android:transition/move</item>
    </style>

    <style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="Button" parent="Base.Widget.AppCompat.Button.Colored">
        <item name="android:backgroundTint">@color/colorAccent</item>
    </style>

    <color name="colorPrimary">#E88768</color>
    <color name="colorPrimaryDark">#CC785C</color>
    <color name="colorAccent">#E88768</color>
    <color name="textColorPrimary">#000000</color>
    <color name="windowBackground">#FFFFFF</color>
    <color name="navigationBarColor">#E88768</color>
</resources>
Run Code Online (Sandbox Code Playgroud)

布局-V21/start_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@color/white"
                xmlns:app="http://schemas.android.com/apk/res-auto">
    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_alignParentStart="true"
        android:elevation="12dp"
        android:translationZ="12dp"
        android:id="@+id/scrollView">

    </HorizontalScrollView>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_below="@+id/scrollView">

    </LinearLayout>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

谁能帮我?

dth*_*lke 7

尝试将背景颜色/可绘制设置为HorizontalScrollView:

android:background="@android:color/white"
Run Code Online (Sandbox Code Playgroud)

这似乎是绘制阴影所必需的.

  • 我认为它实际上是一个特征:)原因是如果你没有指定背景它隐含透明.由高程属性创建的阴影适应具有透明度的背景,这意味着阴影例如圆角.因此,如果背景完全透明,则不会产生阴影. (2认同)