Android中Recyclerview使用2----实现添加删除条目时加动画
来源:互联网 发布:vr全景拼接软件 编辑:程序博客网 时间:2024/05/21 15:23
效果图:
核心代码:
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中:
<span style="font-size:18px;">/** * 改添加删除条目设置动画 */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<String> 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<String> initData() { ArrayList<String> mDatas = new ArrayList<String>(); for (int i = 0; i < 100; i++) { mDatas.add("我是条目" + i); } return mDatas; }}</span>
Recyclerview布局文件:
activity_main.xml
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/btnAddItem" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="添加条目" /> <Button android:id="@+id/btnDeleteItem" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="删除条目" /> <android.support.v7.widget.RecyclerView android:id="@+id/id_recyclerview" android:layout_width="match_parent" android:layout_height="match_parent" > </android.support.v7.widget.RecyclerView></LinearLayout></span>条目布局文件:
item_home.xml
适配器:<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:background="#44ff0000" android:layout_height="wrap_content" > <TextView android:id="@+id/id_num" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" android:text="1" /></FrameLayout>
class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyViewHolder> { private Context context; private ArrayList<String> list; public HomeAdapter(Context context, ArrayList<String> 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); } }}源码下载:
MyRecyclerView----recyclerview2
http://download.csdn.net/detail/zhaihaohao1/9572945
参考博客:
http://blog.csdn.net/lmj623565791/article/details/45059587
参考视频:
http://www.imooc.com/learn/424
0 1
- Android中Recyclerview使用2----实现添加删除条目时加动画
- Android中Recyclerview使用3----添加条目得到点击事件和长按事件
- 使用RecycleView删除条目 以及动画条目
- RecyclerView单选框删除条目,全选删除,Recyclerview 实现多选,单选,全选,反选,批量删除的步骤 1.在Recyclerview布局中添加上底部的全选和反选按钮,删除按钮,和计算
- Android-RecyclerView实现Item添加和删除
- Android中Recyclerview使用4----选中某一条目
- Android中Recyclerview使用6----添加条目得到点击事件和长按事件(另一种写法,较简单)
- 12.使用动画框架来简化RecyclerView条目动画
- RecyclerView 瀑布流 点击按钮添加或删除条目
- 利用RecyclerView实现的一个动画给变item的位置和左右滑动删除该RcyclervView的Item条目
- RecyclerView 获取条目中EditText的值, 增加条目和删除条目
- RecyclerView实现分割线、点击事件、条目加载动画
- RecyclerView实现条目Item拖拽排序与滑动删除
- RecyclerView实现条目Item拖拽排序与滑动删除
- ItemTouchHelper实现RecyclerView条目拖拽移动、滑动删除
- RecyclerView实现条目Item拖拽排序与滑动删除
- RecyclerView实现条目Item拖拽排序与滑动删除
- RecyclerView实现条目Item拖拽排序与滑动删除
- ios基础控件UILabel
- java内省入门
- ArrayList的remove、序列化(二)
- Batch UPDATE returned unexpected ROW COUNT FROM UPDATE [0]; actual ROW COUNT: 0; expected: 1; nested
- PHP 运行方式(PHP SAPI介绍)
- Android中Recyclerview使用2----实现添加删除条目时加动画
- 设计模式(连线)
- 各种排序算法时间复杂度和空间复杂度表
- HDU1548:A strange lift(BFS)
- VC维理论
- Spark中repartition和coalesce的用法
- YOLO源码解析之yolo.c
- EventBusException: Subscriber class *** and its super classes have no public methods with the @Subsc
- eclipse使用心得