Android提升属性不工作

Android提升属性不工作,android,android-layout,Android,Android Layout,自从升级到sdk21以来,我一直在尝试使用elevation属性,但它似乎从来都不起作用 我想将一个框架提升到其他框架之上,因此我设置以下内容 android:elevation="4dp" 但是没有影子的迹象。我尝试过按钮和框架布局,但没有得到任何提升 这是完整的标签 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schema

自从升级到sdk21以来,我一直在尝试使用elevation属性,但它似乎从来都不起作用

我想将一个框架提升到其他框架之上,因此我设置以下内容

android:elevation="4dp"
但是没有影子的迹象。我尝试过按钮和框架布局,但没有得到任何提升

这是完整的标签

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/panel_card"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#ffffff"
    android:elevation="4dp"
    >

根据Z=标高+平移Z,我是否缺少需要添加的其他内容

所以试试这个:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:card_view="http://schemas.android.com/apk/res-auto"
  android:id="@+id/panel_card"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:background="#ffffff"
  android:elevation="4dp"
  android:translationZ="4dp">


确保容纳FrameLayout的容器的背景不是透明的。

您需要向其添加背景,例如:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/panel_card"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:elevation="4dp"
    android:background="@drawable/dialog_background">


而不是使用白色。否则阴影就不起作用了。另外,是否不需要使用android:translationZ属性,因为这只会添加到立面中,但如果不需要动画,则不需要使用该属性。

这可能是90%的立面在视图中没有显示问题,在不指定背景的情况下,将忽略高程和translationZ属性。这应该是公认的答案,因为它解决了大多数问题。您还应该检查要提升的项目上的android:elevation android:translationZ,父项上的cliptoppadding将帮助android:translationZ仅用于动画。高度=标高(静态值)+平移Z(动画值)