RecyclerView簡單理解

網絡上關于RecyclerView的文章可以說是數不勝數宝当。但都大同小異〉ㄏ簦看著他們簡直腦袋一團亂糊庆揩。
我在這里就說下我的個人理解,菜鳥才能和菜鳥有共同語言,不是嗎订晌?

你要想使用它需要:

  • 在主要布局里聲明一個RecyclerView控件犬性。
  • 繼承自 RecyclerView.Adapter 的布局管理器。
  • 約束內容的布局文件腾仅。
  • 加載它乒裆。

第3,4個暫且拋到一邊去推励。你會發(fā)現前2個是不是跟我們最開始學的android四大控件之一的activity很相像鹤耍?
activity是一個布局文件 和 控制這個布局文件的類
RecyclerView是一個布局控件 和 控制(加載)這個控件的類(容器)

這里倒過來說,先從最后一個步驟說起:

加載一個activity通過Intent:

Intent intent = new Intent(this,需要加載的類)  //找到需要加載的類
startActivity(intent) //啟動

再來看下RecyclerView如何加載它:

recyclerView = (RecyclerView) findViewById(R.id.recyclerView);  //找到要加載的控件
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(SearchActivity.this);  //創(chuàng)建一個列表布局
recyclerView.setLayoutManager(layoutManager);  //設置布局為上面創(chuàng)建的布局
recyclerView.setAdapter(new MyAdapter(null));  //啟動(加載自己的布局管理器验辞,一般null為傳入的數據)

現在說說第二個稿黄,如何創(chuàng)建一個自己的Adapter:

public class MyAdapter extends RecyclerView.Adapter {
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        return null;
    }
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {

    }
    @Override
    public int getItemCount() {
        return 0;
    }
}

1.1這是繼承自 RecyclerView.Adapter必須要寫的三個:

  • onCreateViewHolder 在這個步驟里一般 是 綁定內容布局文件與點擊
  • onBindViewHolder 這里就是 把數據與布局綁定
  • getItemCount 這是長度,一般返回你傳入的數據的長度

上面一再說數據跌造,而這個我們傳入的數據從哪兒傳入杆怕?一個構造方法搞定。

List<String> mList;
public SearchSuggestionsAdapter(List<String> mList) {
        this.mList = mList;
}

還有一個將 內容布局內的控件賦值:

static class MyHolder extends RecyclerView.ViewHolder {
     TextView textView; 
    public MyHolder(View itemView) {
        super(itemView);
        textView = itemView.findViewbyId(R.id.textview);
    }
}

并把MyHolder指定為 RecyclerView.Adapter的泛型:

public class MyAdapter extends RecyclerView.Adapter<MyViewHolder> {

那必須要寫的三個方法(1.1)需要更改壳贪,你可以直接把那三個刪掉陵珍,再使用AndroidStudio的Alt+Enter自動補全。

以下是最簡單的一種

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyHolder> {
    List<String> mList;
    public MyAdapter(List<String> mList){
        this.mList = mList;
    }

    @Override
    public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.textView_item,parent,false);
        return new MyHolder(view);
    }

    @Override
    public void onBindViewHolder(MyHolder holder, int position) {
        holder.textView.setText(mList.get(position));
    }

    @Override
    public int getItemCount() {
        if (!mList.isEmpty())return mList.size();
        return 0;
    }

    static class MyHolder extends RecyclerView.ViewHolder {
        TextView textView;
        public MyHolder(View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.textView);
        }
    }
}

實在看不懂的話就跟著一個字一個字得敲违施。但是不要復制粘貼互纯。敲個幾百行自然而然的就懂了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末磕蒲,一起剝皮案震驚了整個濱河市留潦,隨后出現的幾起案子,更是在濱河造成了極大的恐慌辣往,老刑警劉巖兔院,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異站削,居然都是意外死亡坊萝,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門钻哩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屹堰,“玉大人,你說我怎么就攤上這事街氢〕都” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵珊肃,是天一觀的道長荣刑。 經常有香客問我馅笙,道長,這世上最難降的妖魔是什么厉亏? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任董习,我火速辦了婚禮,結果婚禮上爱只,老公的妹妹穿的比我還像新娘皿淋。我一直安慰自己,他們只是感情好恬试,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布窝趣。 她就那樣靜靜地躺著,像睡著了一般训柴。 火紅的嫁衣襯著肌膚如雪哑舒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天幻馁,我揣著相機與錄音洗鸵,去河邊找鬼。 笑死仗嗦,一個胖子當著我的面吹牛膘滨,可吹牛的內容都是我干的。 我是一名探鬼主播儒将,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吏祸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了钩蚊?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蹈矮,失蹤者是張志新(化名)和其女友劉穎砰逻,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體泛鸟,經...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡蝠咆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了北滥。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刚操。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖再芋,靈堂內的尸體忽然破棺而出菊霜,到底是詐尸還是另有隱情,我是刑警寧澤济赎,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布鉴逞,位于F島的核電站记某,受9級特大地震影響,放射性物質發(fā)生泄漏构捡。R本人自食惡果不足惜液南,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望勾徽。 院中可真熱鬧滑凉,春花似錦、人聲如沸喘帚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽啥辨。三九已至涡匀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間溉知,已是汗流浹背陨瘩。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留级乍,地道東北人舌劳。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像玫荣,于是被迫代替她去往敵國和親甚淡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內容