Constraint layout Guideline java.lang.AssertionError: BOTTOM

Constraint layout Guideline java.lang.AssertionError: BOTTOM

我有一个 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"/>

这个错误是因为你忘记添加Guideline的orientation你可以根据你的要求给出一个Guideline的方向horizontal或者vertical

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

<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"/>

使用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" />

您没有使用此代码添加 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" />  

使用布局约束高度百分比来设置高度并移除底部到底部命令 要么 你需要 40% 的 hegith 所以你可以通过约束高度百分比来做到这一点并使宽度匹配父

For more info and clarification check out the link