
微信朋友圈發(fā)布新的動態(tài)的時候會讓我們選擇添加圖片,點擊那個+號圖片可以選擇圖片展示,并且當圖片個數(shù)超過9張之后+號圖片就會消失不見,起初看的時候不知道如何實現(xiàn),后來看了別人的思路才知道如何實現(xiàn);ok直接上代碼
1.首先是在適配器里面寫,所以需要寫一個適配器繼承RecyclerView.Adapter
2.重寫方法.
@Override
public int getItemViewType(int position) {
if (isShowAddItem(position)) {
return TYPE_CAMERA;// 添加圖片---也就是那個大大的+號圖片
} else {
return TYPE_PICTURE;// 顯示圖片--顯示你選擇的照片
}
}
@Override 重寫此方法,以滿足不滿9張可以顯示添加圖片的那個+
public int getItemCount() {
if (list.size() < selectMax) {
return list.size() + 1;// 注意這里,這里會做判斷,若圖片集合大小小于最多顯示幾張那么就讓count+1
} else {
return list.size();
}
}
主要是利用了上述兩種方法獲取對應位置展示的視圖.此外,需要在適配器中另外寫一個方法,用來作為標志是顯示+還是顯示圖片
/**
* @param position
* @return 是否顯示添加圖片的按鈕
*/
private boolean isShowAddItem(int position) {
// TODO: 2017/3/22 選擇視頻之后隱藏添加按鈕
int size = list.size() == 0 ? 0 : list.size();// 第0個位置,集合為0 返回為true; 第一個位置position=1,list.size=3,size=3 返回false
return position == size;
}
在onBindViewHolder方法里面,我們傳入position判斷當前未知是顯示+還是顯示我們選擇的圖片.基本上主要的邏輯處理就結(jié)束了.
若有不對之處,請回復一下我,謝謝.