Атрибут смещения игнорируется - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть простая компоновка горизонтально связанных цепей со стилем цепочки распространения.Когда я пытаюсь переместить представления с использованием атрибута смещения в нужную позицию, я обнаружил, что атрибут смещения игнорируется.

Вот макет для справки:

<android.support.constraint.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white">

    <View
        android:id="@+id/view_1"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@android:color/black"
        app:layout_constraintEnd_toStartOf="@id/view_2"
        app:layout_constraintHorizontal_chainStyle="spread_inside"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <View
        android:id="@+id/view_2"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:background="@android:color/black"
        app:layout_constraintEnd_toStartOf="@id/view_3"
        app:layout_constraintStart_toEndOf="@id/view_1"
        app:layout_constraintTop_toTopOf="parent" />

    <View
        android:id="@+id/view_3"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:background="@android:color/black"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.2"
        app:layout_constraintStart_toEndOf="@id/view_2"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

Здесь я хотел быпереместить view_3 ближе к view_2 с помощью атрибута layout_constraintHorizont_bias.Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Вы можете изменить первый вид (вид головы цепочки) следующим образом:

 <View
    android:id="@+id/view_1"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:background="@android:color/black"
    app:layout_constraintEnd_toStartOf="@+id/view_2"

    app:layout_constraintHorizontal_bias="0.1"
    app:layout_constraintHorizontal_chainStyle="packed"

    app:layout_constraintStart_toStartOf="parent" />

и установить все позиции цепочки относительно родителя с помощью layout_constraintHorizontal_bias, но внутри цепочки это не работает.

0 голосов
/ 26 сентября 2018

Горизонтальное смещение не работает, если вы используете горизонтальную цепь среди ваших видов (так как вы задаете смещение на одной оси, вертикальное смещение будет работать, еслиесть горизонтальная цепь и наоборот); за исключением случая, если вы хотите применить его к виду головы созданной цепочки (это самый левый вид в горизонтальной цепочке и самый верхний вид в вертикальной цепочке); , который не является вашимслучай, здесь . Кроме того, примененное смещение на виде головы цепочки работает только в том случае, если выбранный стиль цепочки упакован. Итак, вы должны попытаться найти какой-то другой обходной путь для достижения желаемого пользовательского интерфейса и игнорировать использование цепочки (здесь) .

Для получения дополнительной информации см .: Создание отзывчивого интерфейса с ConstraintLayout

Надеюсь, мой ответ поможет вам.

...