猿问

Android“海拔”没有显示阴影

Android“海拔”没有显示阴影

我有一个ListView,每个列表项我希望它在它下面显示一个阴影。我正在使用Android Lollipop的新高程功能在View上设置一个我想要投射阴影的Z,并且我已经使用ActionBar(技术上是Lollipop中的工具栏)有效地做到了这一点。我正在使用Lollipop的高程,但由于某种原因,它没有在列表项下显示阴影。以下是每个列表项的布局设置方式:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    style="@style/block"
    android:gravity="center"
    android:layout_gravity="center"
    android:background="@color/lightgray"
    >

    <RelativeLayout
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_marginLeft="40dp"
        android:layout_marginRight="40dp"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="20dp"
        android:elevation="30dp"
        >

        <ImageView
            android:id="@+id/documentImageView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop" />

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/alphared"
            android:layout_alignParentBottom="true" >

        </LinearLayout>

    </RelativeLayout></RelativeLayout>

但是,这是它如何显示列表项,没有阴影: 

我也试过以下无济于事:

  1. 将高程设置为ImageView和TextViews本身而不是父布局。

  2. 将背景应用于ImageView。

  3. 用TranslationZ代替Elevation。


一只名叫tom的猫
浏览 344回答 3
3回答

长风秋雁

如果你有一个没有背景的视图,这一行会对你有帮助android:outlineProvider="bounds"默认情况下,阴影由视图的背景决定,因此如果没有背景,也不会有阴影。

神不在的星期二

显然,您不能只在视图上设置高程并让它出现。您还需要指定背景。添加到我的LinearLayout的以下行最终显示阴影:android:background="@android:color/white"android:elevation="10dp"
随时随地看视频慕课网APP

相关分类

Android
我要回答