java - weeex[android]list的實(shí)現(xiàn)itemview沒(méi)有進(jìn)行重用
問(wèn)題描述
list的實(shí)現(xiàn)使用的是RecyclerView,但getItemViewType返回的是dom的ref,ref在一個(gè)dom樹(shù)里應(yīng)該是唯一的;
public int getItemViewType(int position) { return generateViewType(getChild(position)); }
private int generateViewType(WXComponent component) { long id; try { id = Integer.parseInt(component.getDomObject().getRef()); String type = component.getDomObject().getAttrs().getScope(); if (!TextUtils.isEmpty(type)) {if (mRefToViewType == null) { mRefToViewType = new ArrayMap<>();}if (!mRefToViewType.containsKey(type)) { mRefToViewType.put(type, id);}id = mRefToViewType.get(type); } } catch (RuntimeException e) { WXLogUtils.eTag(TAG, e); id = RecyclerView.NO_ID; WXLogUtils.e(TAG, 'getItemViewType: NO ID, this will crash the whole render system of WXListRecyclerView'); } return (int) id; }
問(wèn)題解答
回答1:進(jìn)行重用要是同一個(gè)type的view才行.按照描述, 每個(gè)item的type都是唯一的,也就是彼此都不是同一個(gè)東西,代碼無(wú)法分辨具體能不能重用.這里應(yīng)該有個(gè)混淆, 把其他地方需要的唯一標(biāo)識(shí)(id)和RecyclerView需要的type混在一起了.如果希望兩個(gè)Item的View可以共用,這兩個(gè)View的type就應(yīng)該是一樣的(它們的id可能不一樣)
回答2:樓上+1 itemtype不一樣沒(méi)法重用
相關(guān)文章:
1. 老哥們求助啊2. javascript - vue-router怎么不能實(shí)現(xiàn)跳轉(zhuǎn)呢3. python - 模擬滑動(dòng)驗(yàn)證碼,有源碼,求解4. 就一臺(tái)服務(wù)器,mysql數(shù)據(jù)庫(kù)想實(shí)現(xiàn)自動(dòng)備份,如何設(shè)計(jì)?5. 在MySQL中新增字段時(shí),報(bào)錯(cuò)??6. npm鏡像站全新上線7. css3 - 請(qǐng)問(wèn)一下在移動(dòng)端CSS布局布局中通常需要用到哪些元素,屬性?8. java - 想使用別人項(xiàng)目中maven引入的jar包,就是那個(gè).class文件,要怎么操作?9. java - 安卓電視盒子取得了root權(quán)限但是不能安裝第三方應(yīng)用,請(qǐng)問(wèn)該怎么辦?10. html5 - angularjs中外部模版加載無(wú)法使用
