Я использую MotionLayout
, чтобы анимировать изменение размера представления в полноэкранном режиме до меньшего размера с определенными полями (согласно следующему).Это в основном работает нормально, но показанные поля равны 0 до самого конца анимации, после чего они применяются немедленно.Можно ли как-то их оживить?
<ConstraintSet android:id="@+id/start">
<Constraint
android:id="@+id/localVideoView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</ConstraintSet>
<ConstraintSet android:id="@+id/end">
<Constraint
android:id="@+id/localVideoView"
android:layout_width="68dp"
android:layout_height="120dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginEnd="16dp"
android:layout_marginBottom="92dp"/>
</ConstraintSet>
Я пытался использовать KeyFrameSet
для создания промежуточной точки с разными значениями полей, но это не имело никакого эффекта.
Например,
<KeyFrameSet>
<KeyAttribute
app:framePosition="50"
app:target="@id/localVideoView">
<CustomAttribute
motion:attributeName="layoutMarginBottom"
motion:customDimension="92dp" />
</KeyAttribute>
</KeyFrameSet>
ОБНОВЛЕНИЕ
Итак, похоже, проблема связана с тем фактом, что я использую SurfaceView
...например, если я попробую с ImageView
, то маржа постепенно изменится.