Android: Анимация положения Представления

Я пытаюсь сделать что-то, что кажется простым. Я хочу иметь представление карты с меню, которое скользит с нижней части экрана, где настройки (для наложения) могут быть скорректированы. Однако, когда я использую TranslateAnimation для влияния на y позицию LinearLayout (который содержит меню), кнопки в перемещении LinearLayout, но там "область хита" остается в том же положении, как они были перед анимацией.

    TranslateAnimation slide = new TranslateAnimation(0,0,0,0);
 slide.setDuration(300);
 slide.setFillAfter(true);
 pullupMenu.startAnimation(slide);
 mapContainer.startAnimation(slide);

Я также изучил вставку промежуточных кадров значения marginTop представления, но даже не смог определить, как это было бы сделано.

Любая справка на любом из этих направлений очень ценилась бы.

6
задан SnowyTracks 8 November 2011 в 17:08
поделиться

1 ответ

Анимация в целом - это анимация пикселей виджета. Основываясь на написанном, я подозреваю, что setFillAfter() просто упорядочивает пиксели pixels так, чтобы они оставались в месте назначения, а не в самом виджете.

Если вы хотите, чтобы анимация действительно приводила к перемещению виджета, вам нужно:

  • Зарегистрировать слушателя, чтобы узнать, когда анимация закончится, и
  • Упорядочить в этот момент правила компоновки так, чтобы виджет действительно существовал в новом местоположении

Вы можете увидеть скользящую панель, которая использует данную технику здесь.

7
ответ дан 17 December 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: