亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android XRecyclerView最簡單的item點擊事件處理

2019-10-21 21:33:17
字體:
來源:轉載
供稿:網友

以前一直都是用PullToRefresh,后來覺得還是太out了?,F在很多人都是用RecyclerView,很簡單的用法,布局多樣化,主要是有瀑布流。這才知道RecyclerView.LayoutManager真正的強大。

但是說要addHeaderView這個的話,RecyclerView沒有實現,所以我用了XRecyclerView,其實它也是在RecyclerView的基礎上再次封裝的,用起來還是蠻好的。

這里說一下,正確的使用XRecyclerView點擊item做事件處理的問題。其實就是在RecyclerView.ViewHolder里面的item做點擊,那么設計到一個問題就是如何簡單使用了。

一般我們會直接在item布局中的最外層設置一個id=”@+id/…”,然后在onBindViewHolder中用holder.**.setOnClickListener()進行事件處理,你看看你是不是這樣做的,如果這樣做的話,那就繼續往下看,教你簡單的。

簡單使用item的點擊事件

1、先看下RecyclerView.ViewHolder源碼是怎么寫的

/** * A ViewHolder describes an item view and metadata about its place within the RecyclerView. * * <p>{@link Adapter} implementations should subclass ViewHolder and add fields for caching * potentially expensive {@link View#findViewById(int)} results.</p> * * <p>While {@link LayoutParams} belong to the {@link LayoutManager}, * {@link ViewHolder ViewHolders} belong to the adapter. Adapters should feel free to use * their own custom ViewHolder implementations to store data that makes binding view contents * easier. Implementations should assume that individual item views will hold strong references * to <code>ViewHolder</code> objects and that <code>RecyclerView</code> instances may hold * strong references to extra off-screen item views for caching purposes</p> */public static abstract class ViewHolder { public final View itemView; ....... public ViewHolder(View itemView) {  if (itemView == null) {   throw new IllegalArgumentException("itemView may not be null");  }  this.itemView = itemView; } .......}

2、再來看看我們繼承它做了什么事情

public class XRViewHolder extends RecyclerView.ViewHolder { public XRViewHolder(View view) {  super(view);  ButterKnife.bind(this, view); } ....... public void onBindViewHolder(VH holder, final int position) {  if (position >= 0) {   holder.itemView.setOnClickListener(new OnClickListener() {    @Override    public void onClick(View v) {     itemClick(getItem(position), position);    }   });  } }}

看到我們自定義的XRViewHolder的構造方法中也用到了super(view)。

其實這里的view就是item的布局,這樣的話,我們要實現點擊事件就很容易了,可以直接在用holder.itemView.setOnClickListener

item的點擊錯位問題

用XRecyclerView.getChildAt(position).setOnClickListener()出現錯位問題,如果你在addHeaderView就會出現這種錯位的問題會更加明顯,可以先來看看XRecyclerView里面的部分源碼。

public class XRecyclerView extends RecyclerView { private WrapAdapter mWrapAdapter; ...... public void addHeaderView(View view) { sHeaderTypes.add(HEADER_INIT_INDEX + mHeaderViews.size()); mHeaderViews.add(view); if (mWrapAdapter != null) {  mWrapAdapter.notifyDataSetChanged(); } } ...... private class WrapAdapter extends RecyclerView.Adapter<ViewHolder> { @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {  if (viewType == TYPE_REFRESH_HEADER) {   return new SimpleViewHolder(mRefreshHeader);  } else if (isHeaderType(viewType)) {   return new SimpleViewHolder(getHeaderViewByType(viewType));  } else if (viewType == TYPE_FOOTER) {   return new SimpleViewHolder(mFootView);  }  return adapter.onCreateViewHolder(parent, viewType); }}

當我們每次addHeaderView時他都會進行notifyDataSetChanged,而且在onCreateViewHolder也有了對應的isHeaderType判斷,所以當你想選擇第一個item做事件處理時可能就pos=0是屬于headerview。

總結

item點擊事件簡單方便快捷的方式:holder.itemView.setOnClickListener()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久中文字幕在线| 中文字幕国内精品| 欧美视频中文字幕在线| 国产精品揄拍一区二区| 亚洲天堂av女优| 久久精品美女视频网站| 日韩电视剧免费观看网站| 欧美日韩激情美女| 国产欧美久久久久久| 91香蕉嫩草影院入口| 日本午夜精品理论片a级appf发布| 亚洲网站在线播放| 色先锋久久影院av| 色综合久久88色综合天天看泰| 日韩一区二区久久久| 精品综合久久久久久97| 成人国产精品av| 国产一区二区在线免费视频| 欧美一级淫片丝袜脚交| 久久久之久亚州精品露出| 国产精品久久久久久久久粉嫩av| 亚洲女同性videos| 欧美电影免费观看| 亚洲女人被黑人巨大进入| 51色欧美片视频在线观看| 国产成人综合久久| 久热精品视频在线观看一区| 欧美精品激情blacked18| 欧美成人一二三| 国产精品国语对白| 高清欧美一区二区三区| 国产午夜精品一区二区三区| 91超碰中文字幕久久精品| 国产欧美一区二区三区在线| 亚洲精品久久7777777| 国产精品久久久久av| 日韩高清免费在线| 亚洲剧情一区二区| 久久久久久久97| 欧美午夜激情在线| 欧美在线日韩在线| 欧美福利视频网站| 日本一区二三区好的精华液| 九九热精品视频国产| 欧美高清自拍一区| 国产精品欧美日韩| 欧美日韩福利在线观看| 中文一区二区视频| 精品久久久久久中文字幕一区奶水| 深夜福利日韩在线看| 中文字幕日韩欧美| 成人福利视频在线观看| 日韩有码在线观看| 欧美乱大交做爰xxxⅹ性3| 亚洲国产精品久久久久秋霞不卡| 亚洲人成网站免费播放| 粗暴蹂躏中文一区二区三区| 97在线视频免费看| 欧美激情精品久久久久久久变态| 中文字幕自拍vr一区二区三区| 欧美激情在线观看| 最近2019好看的中文字幕免费| 国产亚洲欧美视频| 欧美激情第6页| 久久久在线免费观看| 欧美国产日韩精品| 亚洲电影第1页| 中文字幕精品久久久久| 亚洲成人精品久久久| 亚洲一区二区自拍| 国产成人精品一区二区在线| 欧美激情第99页| 日韩精品一二三四区| 日韩在线视频一区| 亚洲色图50p| 亚洲精品欧美一区二区三区| 日韩网站免费观看| 亚洲激情久久久| 亚洲国产精品成人va在线观看| 在线观看欧美成人| 中文字幕欧美日韩精品| 日本久久久a级免费| 亚洲аv电影天堂网| 午夜精品久久久久久99热| 国产精品私拍pans大尺度在线| 精品视频偷偷看在线观看| 成人日韩在线电影| 久久精品国产久精国产一老狼| 亚洲大尺度美女在线| 国产精品第100页| 91免费看片在线| 国产亚洲欧美日韩一区二区| 欧美激情xxxx性bbbb| 亚洲亚裔videos黑人hd| 日韩中文字幕视频在线| 欧美亚洲视频在线观看| 永久免费精品影视网站| 国产精品丝袜视频| 国产一区在线播放| 日本欧美在线视频| 日韩动漫免费观看电视剧高清| 欧美巨乳美女视频| 91丨九色丨国产在线| 久久99久久99精品免观看粉嫩| 欧美精品电影免费在线观看| 日韩欧美中文字幕在线播放| 亚洲国产精品va在线观看黑人| 国产精品小说在线| 国产免费成人av| 亚洲自拍偷拍视频| 欧美专区日韩视频| 日韩av有码在线| 秋霞午夜一区二区| 亚洲丁香婷深爱综合| 国产精品黄色影片导航在线观看| 国产成人鲁鲁免费视频a| 亚洲国产99精品国自产| 热re91久久精品国99热蜜臀| 欧美一级在线亚洲天堂| 亚洲国产日韩精品在线| 亚洲免费人成在线视频观看| 亚洲直播在线一区| 亚洲最大的av网站| 国产精品吊钟奶在线| 久久久久久网址| 精品高清美女精品国产区| 不卡中文字幕av| 欧美成人精品h版在线观看| 这里精品视频免费| 亚洲欧美一区二区精品久久久| 欧美色播在线播放| 17婷婷久久www| 亚洲午夜精品久久久久久性色| 4438全国成人免费| 日韩免费视频在线观看| 欧美另类99xxxxx| 国产女人精品视频| 91av在线不卡| 亚洲女人天堂视频| 亚洲高清不卡av| 亚洲成人久久久久| 亚洲黄色av女优在线观看| 亚洲综合av影视| 国产综合在线观看视频| 亚洲香蕉伊综合在人在线视看| 成人免费在线网址| 欧美国产日韩二区| 亚洲一区二区三区视频| 最近2019中文字幕大全第二页| 精品久久久久久久久国产字幕| 欧美一区二区三区艳史| 欧美大尺度在线观看| 欧美性猛交xxxx乱大交蜜桃| 91免费的视频在线播放| 91精品成人久久| 青青草一区二区| 成人福利在线观看| xvideos亚洲| 久久精品99久久久久久久久| 91中文字幕在线观看| 日韩毛片在线观看| 91国产一区在线| 亚洲精品网站在线播放gif| 亚洲福利视频网站|