Android: Анимация Просмотр позиции - PullRequest
6 голосов
/ 04 февраля 2010

Я пытаюсь сделать что-то, что кажется простым. Я хочу иметь вид карты с меню, которое выдвигается внизу экрана, где можно настроить параметры (для наложения). Однако, когда я использую 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 представления, но даже не смог определить, как это будет сделано.

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

1 Ответ

7 голосов
/ 04 февраля 2010

Анимация в целом анимирует пиксели виджета. Мое подозрение, основанное на том, что вы написали, заключается в том, что setFillAfter() просто организует пикселей для сохранения в месте назначения, а не в самом виджете.

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

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

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

...