Intereting Posts
Как использовать функцию «Выбрать приложение для отладки» и «ждать отладчика» в желе? Java.lang.VerifyError в классе Application для небольшого процента пользователей После извлечения кода в виджет lib больше не работает Android получить текущее время UTC Paypal payment: Как получить запрос успеха при загрузке PayPal в webview Как использовать голосовые поиски и VoiceRecognition на Android? Где в дереве проектов приложения Android разместить документацию разработчиков? Android: как подтвердить, что письмо отправлено успешно Ошибки в android.app.Activity.java Как замедлить и растянуть аудио в Android? Android Studio – не может указать собственный minSdkVersion Служба Android с местоположением Служб Google Play Причиной открытия приложения в случайном порядке Osmdroid: Как я могу создать и загрузить карту из своих собственных растровых изображений (плитки)? Форма Android: круг с крестом (плюс) Имитировать медленное подключение к Интернету на устройстве REAL?

Анимация и 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); 

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

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

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

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

 android:animateLayoutChanges="true"