У меня есть действие, макет которого содержит только VideoView. Вот xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<VideoView
android:id="@+id/videoplayer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
>
</VideoView>
Я пытаюсь применить эту анимацию к VideoView после остановки воспроизведения:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0%" android:toYDelta="-100%" android:duration="500"/>
<scale
android:fromXScale="1.0"
android:toXScale="0"
android:fromYScale="1.0"
android:toYScale="0"
android:duration="500"
android:pivotX="50%"
android:pivotY="0%"
/>
</set>
Это отлично работает, как показано. Но если я переключаюсь с LinearLayout на RelativeLayout в макете, то анимация больше не работает, и видео просто зависает на последнем кадре, который отображается до его остановки.
Почему тип корневого макета в моем действии может вызывать некорректную работу анимации?
РЕДАКТИРОВАТЬ: Чтобы добавить странности, если я добавлю этот TextView
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" ">
</TextView>
в RelativeLayout под VideoView, тогда анимация будет работать . Однако, если я возьму пространство из элемента android: text this, он снова не будет работать. o.O
РЕДАКТИРОВАТЬ: Я наградил Беовульфа Бьёрнсона наградой за хороший совет по использованию нового фреймворка анимации.
Но мне все еще очень интересно, если кто-нибудь когда-нибудь выяснит, что происходит со старыми анимациями в этой ситуации, я был бы более чем счастлив набрать за это еще несколько очков.