
如圖,設定好recycleView之后,我想動態的設定每個itemView的背景,但是用getchildat一直獲取到的為null?是啥原因呢
uj5u.com熱心網友回復:
https://blog.csdn.net/yanxiangxue/article/details/80974416uj5u.com熱心網友回復:
在你的adapter中加入以下代碼://用map保存對應位置的viewholder
private Map viewHolderMap = new HashMap<>();
public Map getViewHolderMap() {
return viewHolderMap;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
viewHolderMap.put(position, holder);
}
在需要設定背景的地方
adapter.getViewHolderMap().get(position).itemView(要設定背景的控制元件)
uj5u.com熱心網友回復:
這個方法我之前試過也沒用哇,setadaper之后通過adapter.getxxx還是為null,但是在adapter里面的map卻是有值的,這是為啥呢?
uj5u.com熱心網友回復:
簡直要吐血啊,RecyclerView和他的adapter都是復用的控制元件,你干嘛老想著getChild呢?你直接在adapter的onBind里面根據position改背景不就行了
uj5u.com熱心網友回復:
思路比較清奇,利用adapter中onBindView 去設定背景uj5u.com熱心網友回復:
思路清奇 666 4L解釋到位uj5u.com熱心網友回復:
這個方法沒問題,可以獲取到所有的ViewHolder
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/236247.html
標籤:Android
