2
我在我的項目中有一個ViewHolder的Recyclerview。對於這個RecyclerView,我有很多項目要填充,但爲了簡單起見,我添加了100個項目。但是,對於這100個項目,onCreateViewHolder被稱爲100個項目,即對於它正在被調用的每個項目,因此對於每個項目視圖正在變得成熟。如果我將使用所有項目(可能是1000或2000),我得到OOM。那麼我怎樣才能避免這個電話onCreateViewHolder爲每個項目。真的需要幫助!爲每個項目調用recyclerview的Viewholder
public static final int HEADER = Integer.MIN_VALUE;
public static final int FOOTER = Integer.MIN_VALUE + 1;
public static final int ADAPTER_OFFSET = 2;
@Override
public int getItemViewType(int position) {
if (position == 0 && useHeader()) {
return HEADER;
}
if (useHeader() && position > getBasicItemCount() && useFooter())
return FOOTER;
else if (!useHeader() && position >= getBasicItemCount() && useFooter())
return FOOTER;
int basicItemType = getBasicItemType(position - (useHeader() ? 1 : 0));
if (basicItemType >= Integer.MAX_VALUE - ADAPTER_OFFSET) {
new IllegalStateException(
"");
}
return basicItemType + ADAPTER_OFFSET;
}
@Override
public int getBasicItemType(int position) {
return position;
}
張貼您的美女。你重寫了'getItemViewType'嗎? – Blackbelt
@Blackbelt,謝謝你,但我的適配器我不能張貼在這裏。對不起。但它是簡單的適配器。我不知道我做錯了什麼。請如果你能幫助我看到適配器 –
@Blackbelt是的,我已覆蓋getItemViewType。 –