У меня есть сценарий использования, когда я хочу создать анимацию, похожую на Youtube, используя MotionLayout.Для этой анимации есть пример в этом репо.Но проблема в том, что в этом примере они используют статическую высоту для запуска ограничения, как это, которое составляет 320dp
:
<MotionScene...>
<Transition..>
<OnSwipe... />
<ConstraintSet android:id="@id/start">
<Constraint
android:id="@id/top_image_container"
android:layout_width="0dp"
android:layout_height="320dp"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintStart_toStartOf="parent"
motion:layout_constraintEnd_toEndOf="parent" />
</ConstraintSet>
</Transition>
</MotionScene>
Но мое требование установить ограничение, используя соотношение сторон.Для статического соотношения сторон, я могу установить, используя app:layout_constraintDimensionRatio="w,16:9"
в Ограничении, как это.
<Constraint
android:id="@id/top_image_container"
android:layout_width="0dp"
android:layout_height="0dp"
motion:layout_constraintTop_toTopOf="w,16:9"
motion:layout_constraintTop_toTopOf="parent"
motion:layout_constraintStart_toStartOf="parent"
motion:layout_constraintEnd_toEndOf="parent" />
Но у каждого видео есть разное соотношение сторон, которое я получаю из API. Поэтому я хочу установить разные соотношения сторон в зависимостина видео.Я не могу найти способ установить это программно в ConstraintSet
Я попытался обойти, чтобы установить android:layout_height="wrap_content"
и изменить соотношение сторон вида программно.Но это не сработало, и анимация не работала должным образом.
Любое решение или предложение будет оценено.