ConstraintLayout 中 view.topMargin 无效?正确设置方法!
如果在 ConstraintLayout 中设置 view 的 'topMargin' 无效,可能是因为 ConstraintLayout 使用的是约束布局,而不是传统的相对布局。在约束布局中,需要使用约束条件来定位视图的位置,而不是使用 margin。
要在 ConstraintLayout 中设置视图的位置,可以使用以下方法:
-
使用 'layout_constraintTop_toTopOf'、'layout_constraintTop_toBottomOf'、'layout_constraintBottom_toTopOf'、'layout_constraintBottom_toBottomOf'、'layout_constraintStart_toStartOf'、'layout_constraintStart_toEndOf'、'layout_constraintEnd_toStartOf'、'layout_constraintEnd_toEndOf' 等属性来设置视图的约束条件。
-
使用 'layout_constraintVertical_bias'、'layout_constraintHorizontal_bias' 属性来设置视图在约束范围内的位置偏移量。
-
使用 'layout_constraintVertical_chainStyle'、'layout_constraintHorizontal_chainStyle' 属性来设置视图在约束链中的位置。
-
使用 '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 属性。
原文地址: https://www.cveoy.top/t/topic/kJQM 著作权归作者所有。请勿转载和采集!