在ScrollView中滑动动画

时间:2014-01-10 12:07:33

标签: android animation

我有以下gui结构:

<ScrollView>
   <LinearLayout>
      <dynamic created view 1>
      <dynamic created view 2>
      ...
      <dynamic created view 3>
   </LinearLayout>
<LinearLayout>

现在我想通过点击其中一个来消除视图,除了被点击的人之外。这个意味着在LinearLayout的顶部缓慢移动,并在到达那里后,一些新的

我点击“cnode”完成了以下步骤:

//cnode is a control in container
//i store the top position
int top = cnode.getTop();
//then i remove all views in container
container.removeAllViews();
//now i want to readd cnode in container and it should be animated from top to 0
//but only from the point of vilibility, keep the ScrollView in mind...
//container.add(cnode ....

//after the animation I want to add some new controls         
for(int i = 1;i<nodes.size();i++)   {
       container.addView(nodes.get(i));
}

有没有人知道实现这种效果的正确方法?

1 个答案:

答案 0 :(得分:0)

要删除或动画视图吗?或者两者兼而有之?

在任何情况下,你需要遍历所有linearLayout的子节点(使用“getChildAt”和“getChildCount”),并检查:如果当前视图是你点击过的那个,请向右移动动画(或者不要删除它),如果没有,请向左移动(或删除它)。

如果您希望为视图设置动画并将其删除,则应为动画添加一个侦听器,以便在每个动画结束时删除视图。但是,我认为它会导致一些奇怪的事情发生,所以我认为最好只做动画。

不过,你为什么使用scrollView而不是listView?