Дубликат идентификатора в наборах ограничений - PullRequest
0 голосов
/ 13 апреля 2019

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

<ConstraintSet android:id="@+id/starting_set">
        <Constraint
            android:id="@+id/tracker"
            app:layout_constraintBottom_toBottomOf="@+id/t1"
            tools:layout_editor_absoluteX="167dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="4dp"
            />
 </ConstraintSet>

есть ошибка в конечном ограничении,по идентификатору ограничения (трекер) дублирования

1 Ответ

0 голосов
/ 25 мая 2019

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

<MotionScene
    xmlns:motion="http://schemas.android.com/apk/res-auto">

    <Transition
        motion:constraintSetStart="@layout/motion_01_cl_start"
        motion:constraintSetEnd="@layout/motion_01_cl_end"
        motion:duration="1000">
        <OnSwipe
            motion:touchAnchorId="@+id/button"
            motion:touchAnchorSide="right"
            motion:dragDirection="dragRight" />
    </Transition>

</MotionScene> 

, вы можете найти другие образцы здесь
https://github.com/googlesamples/android-ConstraintLayoutExamples

также, если у вас есть несколько ограничений, убедитесь, что они имеютИмя ограничения и они в разных наборах.Пример ниже не будет работать и будет жаловаться на дубликаты.Если вы можете поменять кнопку на ограничение, это сработает.

<Transition
    motion:constraintSetEnd="@+id/end"
    motion:constraintSetStart="@+id/start"
    motion:duration="1000"
    motion:motionInterpolator="linear">
    <OnSwipe
        motion:dragDirection="dragRight"
        motion:touchAnchorId="@id/button"
        motion:touchAnchorSide="right" />
</Transition>

<ConstraintSet android:id="@+id/start">
    <Button
        android:id="@id/button"
        android:layout_width="64dp"
        android:layout_height="64dp"
        android:layout_marginStart="8dp"
        motion:layout_constraintBottom_toBottomOf="parent"
        motion:layout_constraintStart_toStartOf="parent"
        motion:layout_constraintTop_toTopOf="parent">
        <CustomAttribute
            motion:attributeName="BackgroundColor"
            motion:customColorValue="#D81B60" />
    </Button>
</ConstraintSet>

<ConstraintSet android:id="@+id/end">
    <Button
        android:id="@id/button"
        android:layout_width="64dp"
        android:layout_height="64dp"
        android:layout_marginEnd="8dp"
        motion:layout_constraintBottom_toBottomOf="parent"
        motion:layout_constraintEnd_toEndOf="parent"
        motion:layout_constraintTop_toTopOf="parent">
        <CustomAttribute
            motion:attributeName="BackgroundColor"
            motion:customColorValue="#9999FF" />
    </Button>
</ConstraintSet>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...