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文件,換成其他的效果

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