6

我正在尝试做一些看似简单的事情。我想要一个地图视图,菜单从屏幕底部向上滑动,可以调整设置(用于叠加)。但是,当我使用 TranslateAnimation 来影响 LinearLayout (包含菜单)的 y 位置时,LinearLayout 中的按钮会移动,但“命中区域”保持在与动画之前相同的位置。

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

我还研究了补间视图的 marginTop 值,但甚至无法确定如何完成。

任何对这些方向的帮助将不胜感激。

4

1 回答 1

7

动画通常是为小部件的像素设置动画。根据您所写的内容,我的怀疑是setFillAfter()仅安排像素留在目标位置,而不是小部件本身。

如果您希望动画真正结束移动小部件,您需要:

  • 注册一个监听器以了解动画何时结束,以及
  • 在该点安排以修改布局规则,使小部件实际存在于新位置

您可以在此处看到采用此技术的滑动窗格。

于 2010-02-03T21:40:18.700 回答