如何在约束布局中将一个视图与另一个视图的中心对齐

Posted

技术标签:

【中文标题】如何在约束布局中将一个视图与另一个视图的中心对齐【英文标题】:How to align one view to the center of another view in constraint layout 【发布时间】:2021-09-28 20:59:14 【问题描述】:

在上图中,我必须将这些点(在 XML 中只是空视图)对齐到其上方图标的中心

以下代码是我的回收站视图,其中包含视图的

<androidx.core.widget.NestedScrollView
    android:layout_
    android:layout_
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@id/itemImage">

    <androidx.recyclerview.widget.RecyclerView
        android:layout_
        android:layout_
        android:id="@+id/nestedRecyclerView"/>

</androidx.core.widget.NestedScrollView>

上面的代码是针对图标的

 <ImageView
        android:layout_
        android:layout_
        android:id="@+id/itemImage"
        android:src="@drawable/ic_glucose"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"/>

现在我需要将“NestedScrollView”对齐到“ImageView”的中心,以便点可以对齐到图标的中心。

如果我设置

app:layout_constraintLeft_toLeftOf="nestedScrollView"

它会将它完全对齐到左侧,但我希望它对齐到图标的中心

我该怎么做,请有任何建议

【问题讨论】:

【参考方案1】:

无法直接将 NestedScrollView 的左侧对齐到 ImageView 的中心,但有办法。

您可以将空视图与 ImageView 的中心对齐(ImageView 从右到右,从左到左)。然后,您的 NestedScrollView 可以简单地对齐到这个居中的 View,并且通过将 RecyclerView 对齐到 NestedScrollView 的左侧,您将获得所需的结果。

【讨论】:

以上是关于如何在约束布局中将一个视图与另一个视图的中心对齐的主要内容,如果未能解决你的问题,请参考以下文章

在水平堆栈视图(自动布局)中将文本与图像垂直居中 - iOS

无法将视图边缘与另一个中心对齐视图对齐

如何在弹性框中将一个元素的中心与另一个元素的基线对齐

对齐两个 relativeLayout

垂直自动布局子视图

如何将两个按钮和视图从左到中对齐,从中心到右对齐