先上效果:
方法:
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文件,換成其他的效果