-
**還要重寫一個(gè)重要的方法:getItemViewType(),返回相應(yīng)位置的type。查看全部
-
**之后在MainActivity中可以調(diào)用adapater的addList()方法將數(shù)據(jù)填充進(jìn)去。 然后調(diào)用notifyDataChanged()方法告訴其數(shù)據(jù)已經(jīng)發(fā)生改變。查看全部
-
**數(shù)據(jù)生成完畢之后就要將數(shù)據(jù)填充進(jìn)adapter當(dāng)中。。 然后需要重寫adapater的構(gòu)造函數(shù),該構(gòu)造函數(shù)中的參數(shù)是一個(gè)Context對(duì)象、。 這個(gè)Context對(duì)象有什么用呢?因?yàn)閯?chuàng)建adapater的時(shí)候要?jiǎng)?chuàng)建一個(gè)布局,所以需要用到LayoutInflater的對(duì)象,而生成該對(duì)象要用到layoutInflater.from()方法,該方法需要傳入一個(gè)Context對(duì)象。。 **利用addList()方法可以讓外面操作數(shù)據(jù)。查看全部
-
?。?!查看全部
-
!?。?!查看全部
-
**重寫adapter的時(shí)候需要分配好getItemViewType()中的type,因?yàn)楦鱾€(gè)Item的type類型不能相同,假如有一個(gè)item的類型是1,那么另外 那些item的類型就不能是1了。 **因?yàn)閠ype返回的值必須是int值,所以只需要是一個(gè)數(shù)字就可以了。 **RecyclerView當(dāng)中的type不一定是需要連續(xù)的數(shù)字,而listView當(dāng)中的type保存的是一個(gè)連續(xù)的數(shù)組,所以一定要連續(xù)的數(shù)字。查看全部
-
?。。?查看全部
-
***緩存池是一個(gè)靜態(tài)的內(nèi)部類,一個(gè)靜態(tài)成員變量,所以多個(gè)RecyclerView可以向里面取Holder查看全部
-
?。。?查看全部
-
?。?!查看全部
-
**RecyclerView中的內(nèi)部類Holder是保存view的單位。查看全部
-
?。。?查看全部
-
***getItemViewType()的作用。查看全部
-
觸發(fā)滾動(dòng)的時(shí)候:會(huì)先根據(jù)position去調(diào)用getItemViewType,然后根據(jù)Type去尋找Holder,如果找不到的話,就會(huì)去調(diào)用adapter.createViewHolder 去創(chuàng)建一個(gè)ViewHolder。找到的話,就會(huì)調(diào)用adapter.bindViewHolder,然后就會(huì)回調(diào)到我們之前復(fù)寫的onBindViewHolder()方法。查看全部
-
Holder現(xiàn)在是RecyclerView內(nèi)部的一個(gè)類,不需要再自己創(chuàng)建一個(gè)了,只需要繼承它即可查看全部
舉報(bào)
0/150
提交
取消