Скользящая анимация - PullRequest
       2

Скользящая анимация

2 голосов
/ 26 августа 2011

Я пытаюсь оживить TextView, скользящего вниз из-за ImageView. У меня есть следующий макет:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
  <TextView
    android:id="@+id/description"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="16dp"
    android:layout_margin="16dp"
    android:layout_marginTop="-10dp"
    android:background="@drawable/image_background"
    android:visibility="invisible" 
    android:layout_below="@id/image"
    />
  <ImageView
    android:id="@+id/image"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/image_background"
    android:adjustViewBounds="true"
    android:layout_margin="6dp"
    android:layout_below="@id/question"
  />
</RelativeLayout>

Я использую RelativeLayout вместо LinearLayout, чтобы description TextView отображался за ImageView (по z-index).

Обратите внимание, что TextView может различаться по длине текста, и при заполнении он часто длиннее изображения. Есть и другие виды выше и ниже этого RelativeLayout.

Я пробовал с этой анимацией

<set xmlns:android="http://schemas.android.com/apk/res/android">
  <translate android:fromYDelta="-100%p" android:toYDelta="0"
      android:duration="@android:integer/config_longAnimTime"/>
  <scale android:fromYScale="0.0" android:toYScale="1.0"
      android:duration="@android:integer/config_longAnimTime" />
</set>

... и с использованием

descriptionView.Visibility = ViewStates.Visible;
Animation a = AnimationUtils.LoadAnimation(this, Resource.Animation.push_down);
descriptionView.StartAnimation(a);

Однако, это нестабильно, и не начинается там, где я думал, что это начнется, nore не работает с масштабированием. Я читал об анимациях макета и о том, что анимация может запускаться автоматически при изменении видимости, но я не знаю, как.

Как заставить работать анимацию, и есть ли более простое решение?

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