-
!!!查看全部
-
!1!!查看全部
-
?。。?查看全部
-
?。?!查看全部
-
!??!查看全部
-
?。。?查看全部
-
效果圖查看全部
-
?。?!查看全部
-
***然后根據不同的類型去取不同的數據。查看全部
-
***然后還要把三個列表給存進來,查看全部
-
***然后還要去Adapter當中進行改造,找到onBindViewHolder()方法,將((TypeAbstractViewHolder))holder).bingHolder(mList.get(position)); 改成: int viewType = getItemViewType(position);//首先通過該方法得到相應位置的viewType然后去得到一個realPosition,其等于目前傳進來的position減去我們拿到的那個起始位置的position,realPosition就是在對應每個列表當中的position.查看全部
-
***因為DataModel不需要用了,所以現在要修改一下那三個ViewHolder.將bindHolder()方法的參數改成相應的Model的對象。然后在前面的類名繼承的那個TypeAbstractViewHolder中指定相應的泛型即可。查看全部
-
***將TypeAbstractViewHolder進行修改一下,將抽象方法bindHolder()里面的參數:DataModel model 改成用泛型表示即可 :T model查看全部
-
***1、改寫addList()方法里面的參數。 2、創建addListByType()方法, 3、創建一個list集合,泛型指定為Integer,里面承裝的是type類型的值。 4、將getItemViewType()方法的返回值:mlist.get(position).type改成:types.get(postion) 5、將getItemCount()方法的返回值:mlist.size()改成:types.size(); 6、List<Integer>的對象types是我們的第一個數據結構,利用addListByType()方法里面的for循環將每一個type放到types里面 7、然后我們還需要一個數據結構,來記錄每個類型的List在types里面的起始位置是什么,需要用Map去記錄。 8、因為現在我們用types這個數組去遍歷的話,我們根本就不知道每個對應上的position在這三個列表當中對應的真實數據的位置是不知道的。 9、所以我們干脆把每個list的起始位置在types中的哪里,把它給記錄下來。-mpostion.put(type,types.size())。types的長度就是下一個list的起始位置。 10、因為原來的DataModel里面定義的那些類型值不需要再被引用了,將其復制到Adapter當中即可。然后這樣子封裝完之后,在addList()方法里面,調用addListByType()方法,將各個list以及其對應的類型作為參數傳進去。 11、做完上一步之后只需要遍歷types然后根據mposition去拿數據就好了。查看全部
-
?。?!查看全部
舉報
0/150
提交
取消