Android开发——RecyclerView特性以及基本使用方法(二)
0.? 前言
隨著Android的發展,雖然ListView依舊重要,但RecyclerView確實越來越多的被大家使用。但顯然并不能說RecyclerView就一定優于ListView,而是應該根據不同的需求選擇最合適的進行使用。本篇將介紹我們為什么要使用RecyclerView,并且它的基本使用方法。
在Android開發——RecyclerView特性以及基本使用方法(一)中主要介紹了我們為什么要使用RecyclerView,以及RecyclerView強大的LayoutManager。這篇將主要介紹RecyclerView中的動畫效果以及點擊事件的處理。本文原創,轉載請注明出處為SEU_Calvin的博客。
1.? RecyclerView的動畫效果和點擊事件
系統沒有提供ClickListener和LongClickListener,不過我們也可以自己去添加,這里通過adapter中自己去提供回調的方式實現。
在Adapter中如下所示:
public OnItemClickListener itemClickListener;public void setOnItemClickListener(OnItemClickListener itemClickListener) {this.itemClickListener = itemClickListener;}public interface OnItemClickListener {void onItemClick(View view, int position);void onItemLongClick(View view, int position);}public class ViewHolder extends RecyclerView.ViewHolder{public TextView textView;public ViewHolder(View itemView) {super(itemView);textView = (TextView)itemView.findViewById(R.id.id_num);textView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if (itemClickListener != null) {itemClickListener.onItemClick(view, getPosition());}}});textView.setOnLongClickListener(new View.OnLongClickListener() {@Overridepublic boolean onLongClick(View view) {if (itemClickListener != null) {itemClickListener.onItemLongClick(view, getPosition());}return true;}});} }首先自行提供了點擊和長按的接口,并在內部類ViewHolder中對點擊事件進行了處理。
在Activity中的實現如下:
mAdapter.setOnItemClickListener(new RecyclerAdapter.OnItemClickListener() {@Overridepublic void onItemClick(final View view, int position) {Toast.makeText(MainActivity.this, position + "", Toast.LENGTH_SHORT).show();}@Overridepublic void onItemLongClick(View view, int position) {mAdapter.removeData(position);}});這里簡單的單擊事件,只是Toast了位置信息,而在長按事件中,則調用了Adapter中的removeData()方法,notifyItemRemoved()方法則對該條目進行了刪除,而且是有動畫效果的。若有添加數據的需求,也是有對應的方法,即notifyItemInserted(position)。
public void removeData(int position) {mData.remove(position);notifyItemRemoved(position);}public void addData(int position) {mData.add(position, "Insert One");notifyItemInserted(position);}當然,需要為RecyclerView進行關于動畫的設置:
mRcList.setItemAnimator(newDefaultItemAnimator());這里需要注意的是,如在Android開發——RecyclerView特性以及基本使用方法(一)中顯示的那樣,notifyDataSetChanged()是沒有動畫效果的。從效果圖中可以看到,RecyclerView可以正常的響應點擊事件,和長按刪除事件,而且添加和刪除事件都是有動畫效果的。
源碼下載地址點這里。
轉載于:https://www.cnblogs.com/qitian1/p/6461452.html
總結
以上是生活随笔為你收集整理的Android开发——RecyclerView特性以及基本使用方法(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 光大银行信用卡附属卡怎么办理?这几个事项
- 下一篇: 怎样申请信用卡额度高?想要申卡额度高这几