为什么在设置高程后视图的方向会改变

why orientation of views change after setting elevation

在我为我的 LinearLayout 设置高度后,我的 ImageView 应该在我的 LinearLayout 上落后于它,这是什么问题?这是我的代码:

 <RelativeLayout
    android:layout_marginTop="100dp"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:elevation="10dp"
        android:layout_marginBottom="100dp"
        android:layout_marginTop="100dp"
        android:layout_marginLeft="40dp"
        android:layout_marginRight="40dp"
        android:background="@drawable/login_cardview"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </LinearLayout>

    <ImageView
        android:layout_centerHorizontal="true"
        android:src="@mipmap/login_iut_logo"
        android:layout_width="200dp"
        android:layout_height="200dp"/>


</RelativeLayout>

我希望我的 ImageView 位于 LinearLayout 上。它运作良好,直到不为 LinearLayout 设置高程。我设置海拔是因为我想要它的阴影。

我想要这样的东西:

但在我为 LinearLayout 设置高度后,它变成了这样的东西:

如果您希望图像位于线性布局内,您应该像这样嵌套它:

<RelativeLayout
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:layout_marginTop="100dp"
  app:layout_constraintLeft_toLeftOf="parent"
  app:layout_constraintRight_toRightOf="parent"
  app:layout_constraintTop_toTopOf="parent">

  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginLeft="40dp"
    android:layout_marginTop="100dp"
    android:layout_marginRight="40dp"
    android:layout_marginBottom="100dp"
    android:elevation="10dp" />


  <ImageView
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_centerHorizontal="true"
    android:elevation="10dp" />

</RelativeLayout>

这应该可以解决问题! (无需更改大部分代码)