我有一个包含RelativeLayout 的ScrollView。RelativeLayout 包含一些其他视图组,这些视图组最初都位于同一位置(彼此重叠)。向下滑动手势将这些视图组向下推,以便可以通过使用 TranslateAnimation 看到每个视图组的顶部 150 像素(顶部卡片移动到屏幕底部,下一张卡片向下移动 150 像素,等等)。
我为每个视图组附加了一个触摸监听器,它似乎被触发了,但是它只在我点击视图组的原始位置时触发,而不是它被移动到的位置。并且看到它们最初都在彼此之上,无论如何我只能在 OnTouch 方法中获得顶部视图组。
动画后如何让视图实际位于新位置?
代码:
private void setViewgroupVerticalPosition(ViewGroup cardViewGroup,
int position) {
// Animates the ViewGroup to the correct vertical position.
TranslateAnimation ta = new TranslateAnimation(0, 0, 0, position);
ta.setDuration(500);
ta.setFillAfter(true);
ta.setAnimationListener(this);
cardViewGroup.startAnimation(ta);
/*
cardViewGroup.layout(cardViewGroup.getLeft(), position, cardViewGroup.getRight(), position + (cardViewGroup.getBottom() - cardViewGroup.getTop()));
cardViewGroup.forceLayout();
cardViewGroup.invalidate();
*/
}
在每个 ViewGroup 上运行之后,在原始位置点击是触发 OnTouch 事件的唯一方法......