ConstraintLayout水平定位就像'centerToCenterOf'

时间:2018-01-15 10:15:54

标签: android android-constraintlayout

仍然无法弄清楚如何在ConstraintLayout中安排两个视图来完成以下操作:
它们是垂直排列的,所以底部一个指向topToBottomOf的上面一个。上面的应该有一个由startToStartOf和topToTopOf(+ margin等)完成的固定位置。现在底部垂直定位如上所述,但水平定位应该像“中心到中心”,这意味着它总是水平调整,使其中心正好位于上方视图中心的正下方。 每当我用链条玩耍时,上面的一个立即跳跃并失去原来的位置,是什么样的疏远我... 怎么做?

更新:情况是这样的:

enter image description here

4 Textviews,Textview 1是决定整体位置的主要锚点。 Textview 3总是在rightToRightOf的右侧到1。现在,Textviews 2和4应始终水平移动,以便如上所述,它们的中心与其直接的上部Textview中心对齐。所有Textview的宽度都可以更改和变化,具体取决于数据绑定所插入的文本

1 个答案:

答案 0 :(得分:1)

试试这个:

注意您可能需要根据需要更改视图的尺寸(边距)。

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="556dp"
        android:layout_marginStart="40dp"
        android:layout_marginTop="8dp"
        android:text="TextView 1"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.488"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.97" />

    <TextView
        android:id="@+id/textView7"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="0dp"
        android:layout_marginTop="84dp"
        android:text="TextView 2"
        app:layout_constraintEnd_toEndOf="@+id/textView6"
        app:layout_constraintStart_toStartOf="@+id/textView6"
        app:layout_constraintTop_toBottomOf="@+id/textView6"
        android:layout_marginLeft="0dp"
        android:textAlignment="center"/>

    <TextView
        android:id="@+id/textView8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="0dp"
        android:layout_marginTop="112dp"
        android:text="TextView 3"
        app:layout_constraintEnd_toEndOf="@+id/textView6"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintRight_toRightOf="@id/textView6"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView7"
        android:layout_marginRight="0dp" />

    <TextView
        android:id="@+id/textView9"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="92dp"
        android:text="TextView 4"
        android:textAlignment="center"
        app:layout_constraintEnd_toEndOf="@+id/textView8"
        app:layout_constraintStart_toStartOf="@+id/textView8"
        app:layout_constraintTop_toBottomOf="@+id/textView8" />
</android.support.constraint.ConstraintLayout>

下面

- &GT; TextView 1位于任何位置。

- &GT; TextView 2始终位于TextView 1及其下方的中心位置。

- &GT; TextView 3TextView 1

正确对齐

- &GT; TextView 4始终位于TextView 3及其下方的中心位置。