我有LinearLayout
layoutAnimation
属性,用于自定义ExpandableListView
。像这样:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layoutAnimation="@drawable/list_layout_controller"
android:orientation="vertical" >
单击列表时,将显示动画。但它只能运行一次,并且不会在下一次单击时为列表设置动画。为什么呢?
如果您需要更多说明,请告诉我。
谢谢
答案 0 :(得分:9)
首先你要声明
Animation listanimation = AnimationUtils.loadAnimation(mainActivity.this, R.anim.list_layout_controller);
并且每次clearAnimation
首先。
在LinearLayout的陈词滥调
linearLayout.clearAnimation();
linearLayout.startAnimation(listanimation);
答案 1 :(得分:8)
布局动画在将视图添加到布局时运行。因此,您必须在每次展开/折叠时手动添加/删除视图才能使布局动画生效。
为此,您可以使用列表索引作为键来维护视图映射。 每次点击时,只需从地图中选择相应的项目并添加到您的布局中。动画将在该视图上运行,您的问题已修复。
您还可以尝试更改onClick()
中观看次数的可见性。但不确定这一点。
试试让我知道。
希望有所帮助。
答案 2 :(得分:3)
致电
listView.scheduleLayoutAnimation();
列表中的所有更改
之前答案 3 :(得分:1)
尝试在每个项目上重新启动动画:
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
view.getAnimation().start();
//your custom logic
}
});
答案 4 :(得分:-1)
只需使用
public void startLayoutAnimation ()
http://developer.android.com/reference/android/view/ViewGroup.html#startLayoutAnimation()