如果在 ConstraintLayout 中设置 view 的 'topMargin' 无效,可能是因为 ConstraintLayout 使用的是约束布局,而不是传统的相对布局。在约束布局中,需要使用约束条件来定位视图的位置,而不是使用 margin。

要在 ConstraintLayout 中设置视图的位置,可以使用以下方法:

  1. 使用 'layout_constraintTop_toTopOf'、'layout_constraintTop_toBottomOf'、'layout_constraintBottom_toTopOf'、'layout_constraintBottom_toBottomOf'、'layout_constraintStart_toStartOf'、'layout_constraintStart_toEndOf'、'layout_constraintEnd_toStartOf'、'layout_constraintEnd_toEndOf' 等属性来设置视图的约束条件。

  2. 使用 'layout_constraintVertical_bias'、'layout_constraintHorizontal_bias' 属性来设置视图在约束范围内的位置偏移量。

  3. 使用 'layout_constraintVertical_chainStyle'、'layout_constraintHorizontal_chainStyle' 属性来设置视图在约束链中的位置。

  4. 使用 'layout_constraintGuide_begin'、'layout_constraintGuide_end'、'layout_constraintGuide_percent' 属性来设置辅助线的位置。

例如,要将一个视图垂直居中并与父视图左对齐,可以使用以下代码:

<View
    android:id="@+id/my_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@color/red"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintVertical_bias="0.5" />

这将使视图垂直居中,并与父视图左对齐。注意,没有设置 margin 属性。

ConstraintLayout 中 view.topMargin 无效?正确设置方法!

原文地址: https://www.cveoy.top/t/topic/kJQM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录