使用 android:elevation 使 TextView 消失

Using android:elevation makes a TextView disappear

我有这个 RelativeLayout 只有两个视图。请在下面查看我尝试过的内容:

<RelativeLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1">

    <ImageView
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:id="@+id/image_view"
        android:layout_centerInParent="true"
        android:background="@drawable/border"
        android:elevation="4dp"/> //Below TextView disappear

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginTop="-48dp"
        android:layout_below="@+id/image_view"/>
</RelativeLayout>

TextView 设置了负数 layout_marginTop,因此它可以显示在图像上。在我设置高度 属性 之前一切正常。一旦我设置它,下面的 TextView 就会消失。如何阻止这种情况发生?

改为使用 CardView。 希望这个工作。

<android.support.v7.widget.CardView
android:layout_gravity="center_horizontal"        
app:cardElevation="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1">

<ImageView
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:id="@+id/image_view"
    android:layout_centerInParent="true"
    android:background="@drawable/border"
    />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:layout_marginTop="-48dp"
    android:layout_below="@+id/image_view"/>
</RelativeLayout>

</android.support.v7.widget.CardView>

解决方法:android:elevation="5dp"添加到布局文件中的TextView中。

<RelativeLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1">

    <ImageView
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:id="@+id/image_view"
        android:layout_centerInParent="true"
        android:background="@drawable/border"
        android:elevation="4dp"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginTop="-48dp"
        android:layout_below="@+id/image_view"
        android:elevation="5dp"/> // Add this line
</RelativeLayout>

您可以关注 this link 以了解 android:elevation 如何在 Android 中工作。