Android添加item动画,Android中Recyclerview使用2----实现添加删除条目时加动画

效果图:

0818b9ca8b590ca3270a3433284dd417.png

核心代码:

Activity中:

//      添加动画

mRecyclerView.setItemAnimator(new DefaultItemAnimator());

适配器中:

//  添加数据

public void addData(int position) {

//      在list中添加数据,并通知条目加入一条

list.add(position, "Insert One");

notifyItemInserted(position);

}

//  删除数据

public void removeData(int position) {

list.remove(position);

notifyItemRemoved(position);

}

具体代码:

MainActivity中:

/**

* 改添加删除条目设置动画

*/

public class MainActivity extends Activity {

private RecyclerView mRecyclerView;

private Button btnAddItem;

private Button btnDeleteItem;

HomeAdapter honmeAdapter=null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

btnAddItem = (Button) findViewById(R.id.btnAddItem);

btnDeleteItem = (Button) findViewById(R.id.btnDeleteItem);

// 初始化RecyclerView

mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview);

// listView纵向滑动样子,纵向滑动

LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);

mRecyclerView.setLayoutManager(linearLayoutManager);

// 获取数据,向适配器传数据,绑定适配器

ArrayList datas = initData();

honmeAdapter= new HomeAdapter(MainActivity.this, datas);

mRecyclerView.setAdapter(honmeAdapter);

// 添加动画

mRecyclerView.setItemAnimator(new DefaultItemAnimator());

myOnClick();

}

private void myOnClick() {

btnAddItem.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// 添加自带默认动画

honmeAdapter.addData(1);

}

});

btnDeleteItem.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// 删除自带默认动画

honmeAdapter.removeData(1);

}

});

}

/**

* 编写一套假数据

*/

protected ArrayList initData() {

ArrayList mDatas = new ArrayList();

for (int i = 0; i < 100; i++) {

mDatas.add("我是条目" + i);

}

return mDatas;

}

}Recyclerview布局文件:

activity_main.xml

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

>

android:id="@+id/btnAddItem"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="添加条目"

/>

android:id="@+id/btnDeleteItem"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="删除条目"

/>

android:id="@+id/id_recyclerview"

android:layout_width="match_parent"

android:layout_height="match_parent" >

条目布局文件:

item_home.xml

android:layout_width="match_parent"

android:background="#44ff0000"

android:layout_height="wrap_content" >

android:id="@+id/id_num"

android:layout_width="match_parent"

android:layout_height="50dp"

android:gravity="center"

android:text="1" />

适配器:

class HomeAdapter extends RecyclerView.Adapter {

private Context context;

private ArrayList list;

public HomeAdapter(Context context, ArrayList list) {

this.context=context;

this.list=list;

}

@Override

public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

MyViewHolder holder = new MyViewHolder(LayoutInflater.from(

context).inflate(R.layout.item_home, parent,

false));

return holder;

}

@Override

public void onBindViewHolder(MyViewHolder holder, int position) {

holder.tv.setText(list.get(position));

}

@Override

public int getItemCount() {

return list.size();

}

// 添加数据

public void addData(int position) {

// 在list中添加数据,并通知条目加入一条

list.add(position, "Insert One");

notifyItemInserted(position);

}

// 删除数据

public void removeData(int position) {

list.remove(position);

notifyItemRemoved(position);

}

/**

* ViewHolder的类,用于缓存控件

*/

class MyViewHolder extends RecyclerView.ViewHolder {

TextView tv;

public MyViewHolder(View view) {

super(view);

tv = (TextView) view.findViewById(R.id.id_num);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值