RecyclerView / ListView 中item条目的动画加载

先上效果:

方法:

private void initAinm() {
        //通过加载XML动画设置文件来创建一个Animation对象;
        Animation animation = AnimationUtils.loadAnimation(getContext(), R.anim.left);
        //得到一个LayoutAnimationController对象;
        LayoutAnimationController lac = new LayoutAnimationController(animation);
        //设置控件显示的顺序;
        lac.setOrder(LayoutAnimationController.ORDER_NORMAL);
        //设置控件显示间隔时间;
        lac.setDelay(0.2f);
        //为ListView设置LayoutAnimationController属性;
        mRecyclerView.setLayoutAnimation(lac);
    }

XMl文件 reclerview_anim.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:duration="500"
        android:fromXDelta="100%"
        android:fromYDelta="0"
        android:toXDelta="0"
        android:toYDelta="0" />
    <alpha
        android:duration="500"
        android:fromAlpha="0"
        android:toAlpha="1" />

</set>

代码中调用:

//设置数据
public void showResult(List<MessageBean> messages) {

        //调用动画方法   一定要在设置数据之前
        initAinm();

        if(messages!=null&&messages.size()>0){
            if(adapter == null){
                adapter = new MessageAdapter(messages,getContext());
                getActivity().runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                         //为列表设置数据
                        mRecyclerView.setAdapter(adapter);
                    }
                });
            }else {
                 //UI线程 刷新条目
                getActivity().runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        adapter.notifyDataSetChanged();
                    }
                });
            }
        }
    }

是不是很简单,需要其他效果。可自定义reclerview_anim.xml文件,换成其他的效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章