Подтвердить что ты не робот

Анимация и setVisibility

У меня есть LinearLayout, который я хочу показать/скрыть, нажав ссылку "Подробнее". Я делаю это, вызывая

moreDetailsSection.setVisibility(View.VISIBLE);

или

moreDetailsSection.setVisibility(View.GONE);

чтобы показать/скрыть его. Это прекрасно работает, но я хотел добавить анимацию, которая делает поля макета слайдами красиво, но это выполняется только в первый раз, когда поле становится видимым, если я скрою его и снова его покажу, поле просто появляется внезапно, Вот код анимации (moreDetailsSection - это макет):

      AnimationSet set = new AnimationSet(true);

      Animation animation = new AlphaAnimation(0.0f, 1.0f);
      animation.setDuration(250);
      set.addAnimation(animation);

      animation = new TranslateAnimation(
          Animation.RELATIVE_TO_SELF, 1.0f, Animation.RELATIVE_TO_SELF, 0.0f,
          Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f
      );
      animation.setDuration(150);
      set.addAnimation(animation);

      LayoutAnimationController controller =
          new LayoutAnimationController(set, 0.25f);
      moreDetailsSection.setLayoutAnimation(controller);

Любые советы о том, как выполнить этот запуск. В какое-то время я показываю макет и не только первый раз?

4b9b3361

Ответ 1

Я предполагаю, что вначале большеDetailsSection НЕВИДИМО. вам просто нужно создать объект Animation и вызвать следующий код при нажатии ссылки на более подробную информацию.

moreDetailsSection.startAnimation(animation);
moreDetailsSection.setVisibility(View.VISIBLE);

Ответ 2

Вы можете использовать эту строку в своем представлении для этого макета:

android:animateLayoutChanges="true"