Переход между состояниями MotionLayout не плавный

У меня три состояния: A, B, C.

С помощью OnSwipe я перехожу от A к B, а затем с помощью другого OnSwipe от B к C.

Направление свайпов такое же. Таким образом, непрерывное перетаскивание из состояния A в конечном итоге должно перейти в состояние C.

введите описание изображения здесь

Проблема, с которой я сталкиваюсь, заключается в том, что переход не плавный. В конце первого перехода есть остановка. Иногда срабатывает плавно, когда я быстро перетаскиваю (?). Но, как правило, в середине двух переходов наблюдается замирание.

Есть ли способ избавиться от этого зависания?

Для справки, я просто тестирую образцы, предоставленные командой Google. . Ниже приведены два перехода.

    <Transition
        motion:constraintSetStart="@id/base_state"
        motion:constraintSetEnd="@id/half_people"
        motion:duration="3000">
        <OnSwipe
            motion:dragDirection="dragRight"
            motion:touchAnchorId="@id/people_pad"
            motion:touchAnchorSide="right" />
    </Transition>

    <Transition
        motion:constraintSetStart="@id/half_people"
        motion:constraintSetEnd="@id/people"
        motion:duration="3000">
        <OnSwipe
            motion:dragDirection="dragRight"
            motion:touchAnchorId="@id/people_pad"
            motion:touchAnchorSide="right" />
    </Transition>

person musooff    schedule 21.11.2020    source источник


Ответы (1)


Короткий ответ: нет, но вы можете попробовать настроить движение: dragThreshold в onswipe.

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

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

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

person hoford    schedule 24.11.2020