在我們bindData里面處理數(shù)據(jù)的時(shí)候一定要注意不要只是if沒有else粪薛,不然會(huì)出現(xiàn)recyclew展示item的時(shí)候有些item會(huì)出現(xiàn)展示問題。
舉個(gè)例子:
coder 1:
if (getItemViewType(position) == TYPE_BOOK && obj instanceof PhotoBookExtObj) {
try {
JSONObject jsonObject = new JSONObject(((PhotoBookExtObj) obj).getExtra());
int openBookType = jsonObject.getInt("themeId");
if (FastData.getBookIsSquar(openBookType)) {
holder.ivBookcover.setRatio(RatioFixMode.FIX_WIDTH, 1f, 1f);
} else {
holder.ivBookcover.setRatio(RatioFixMode.FIX_WIDTH, 18f, 25f);
}
} catch (JSONException e) {
Observable.error(e);
}
}
coder 2:
if (getItemViewType(position) == TYPE_BOOK && obj instanceof PhotoBookExtObj) {
try {
JSONObject jsonObject = new JSONObject(((PhotoBookExtObj) obj).getExtra());
int openBookType = jsonObject.getInt("themeId");
if (FastData.getBookIsSquar(openBookType)) {
holder.ivBookcover.setRatio(RatioFixMode.FIX_WIDTH, 1f, 1f);
} else {
holder.ivBookcover.setRatio(RatioFixMode.FIX_WIDTH, 18f, 25f);
}
} catch (JSONException e) {
Observable.error(e);
}
}else {
holder.ivBookcover.setRatio(RatioFixMode.FIX_WIDTH, 18f, 25f);
}
分析一下蜡饵?
coder 1中沒有else烂瘫,coder2中有else精盅。會(huì)導(dǎo)致本來(lái)圖片的寬高比是18:25的現(xiàn)在展示成1:1的帽哑,所以這個(gè)問題雖然是小問題,但是當(dāng)bindData中處理的代碼要是多了的話出了bug就不是很好找了叹俏,所以在開發(fā)的過程中就要注意這個(gè)小問題妻枕。
完結(jié)。