我有以下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));
}
有没有人知道实现这种效果的正确方法?
答案 0 :(得分:0)
要删除或动画视图吗?或者两者兼而有之?
在任何情况下,你需要遍历所有linearLayout的子节点(使用“getChildAt”和“getChildCount”),并检查:如果当前视图是你点击过的那个,请向右移动动画(或者不要删除它),如果没有,请向左移动(或删除它)。
如果您希望为视图设置动画并将其删除,则应为动画添加一个侦听器,以便在每个动画结束时删除视图。但是,我认为它会导致一些奇怪的事情发生,所以我认为最好只做动画。
不过,你为什么使用scrollView而不是listView?