Android:动画化视图位置

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值的缓动,但甚至无法确定如何实现。
任何关于这两个方向的帮助都将不胜感激。

1个回答

7
总的来说,动画是对小部件像素进行动画处理。根据您的描述,我怀疑setFillAfter()仅仅是安排像素保持在目标位置,而不是小部件本身。
如果您希望动画实际上移动小部件,您需要:
  • 注册一个监听器以了解动画何时结束,
  • 然后在那个点上安排修改布局规则,使小部件实际存在于新位置。
您可以在此处查看使用此技术的滑动窗格:这里

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接