0

我有一个 ImageView,我希望它的高度为屏幕高度的 40%。我试图通过约束布局的指南来完成它,但我得到运行时错误“java.lang.AssertionError: BOTTOM”。我认为错误是图像变得高于屏幕的 40%,但我不知道如何修复该错误。这是我的 xml 代码。

<ImageView
    android:id="@+id/apartment_main_image_view"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:src="@drawable/apart"
    app:layout_constraintBottom_toBottomOf="@+id/first_horizontal_guideline"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />


<androidx.constraintlayout.widget.Guideline
    android:id="@+id/first_horizontal_guideline"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_constraintGuide_percent="0.4"/>
4

4 回答 4

1

此错误是因为您忘记添加orientation指南的您可以根据您的要求给出指南的方向horizontalvertical

当您使用垂直准线时,任何受其约束的视图都应该水平执行,水平准线也是如此。

<ImageView
    android:id="@+id/apartment_main_image_view"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:src="@drawable/apart"
    app:layout_constraintBottom_toTopOf="@+id/first_horizontal_guideline"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />


<androidx.constraintlayout.widget.Guideline
    android:id="@+id/first_horizontal_guideline"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_percent="0.4"/>
于 2020-06-23T05:27:16.063 回答
1

用于app:layout_constraintHeight_percent根据屏幕设置高度,无需使用指南。

示例代码

 <ImageView
    android:id="@+id/apartment_main_image_view"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:src="@drawable/apart"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintHeight_percent="0.4"
    app:layout_constraintTop_toTopOf="parent" />
于 2020-06-23T05:29:08.250 回答
0

使用布局约束高度百分比来设置高度并删除从下到下的命令,或者你需要 40% 的高度,所以你可以通过约束高度百分比来做到这一点并使宽度匹配父级

有关更多信息和说明,请查看链接

于 2020-06-23T06:06:26.190 回答
0

您没有添加 android:orientation="horizo​​ntal" 属性使用此代码

<androidx.constraintlayout.widget.Guideline
        android:id="@+id/first_horizontal_guideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.40" />  
于 2020-06-23T05:58:32.123 回答