每次更新listview时,我都会运行一个自上而下的动画,但是,当我这样做时,listview会在它动画之前闪烁白色......有什么方法可以解决这个问题
这是我调用动画的方法:
public void updateDataList(ArrayList<HashMap<String, String>> newList){
final ArrayList<HashMap<String, String>> newListAdd = newList;
Animation anim = AnimationUtils.loadAnimation(
liveStreamFragment.getActivity(), R.anim.top_to_down
);
anim.setDuration(2000);
list.startAnimation(anim);
new Handler().postDelayed(new Runnable() {
public void run() {
oslist.clear();
oslist.addAll(newListAdd);
LiveAdapter.this.notifyDataSetChanged();
}
}, anim.getDuration());
}
这是我的R.anim.top_to_down
的xml<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="20%p" android:toYDelta="-20"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
答案 0 :(得分:0)
在我看来这是动画的一个问题。
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
android:fromAlpha="0.0"
表示该项目将以alpha值0.0开始动画,这意味着它将完全透明。 android:toAlpha="1.0"
然后指定该项目的动画朝向alpha值1.0,a.k.a。完全不透明。
如果您希望项目淡出(这是退出动画的典型情况),您可能需要切换值。
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="@android:integer/config_mediumAnimTime" />