Android listview顶部向下动画时动画闪烁?

时间:2015-06-09 16:15:41

标签: java android list animation notifydatasetchanged

每次更新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" />

1 个答案:

答案 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" />