java - weeex[android]list的實現itemview沒有進行重用
問題描述
list的實現使用的是RecyclerView,但getItemViewType返回的是dom的ref,ref在一個dom樹里應該是唯一的;
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; }
問題解答
回答1:進行重用要是同一個type的view才行.按照描述, 每個item的type都是唯一的,也就是彼此都不是同一個東西,代碼無法分辨具體能不能重用.這里應該有個混淆, 把其他地方需要的唯一標識(id)和RecyclerView需要的type混在一起了.如果希望兩個Item的View可以共用,這兩個View的type就應該是一樣的(它們的id可能不一樣)
回答2:樓上+1 itemtype不一樣沒法重用
相關文章:
1. ddos - apache日志很多其它網址,什么情況?2. 怎么在phpstudy中用phpexcel上傳數據到MYSQL?3. javascript - 百度搜索網站,如何讓搜索結果顯示一張圖片加上一段描述,如圖;求教4. phpadmin的數據庫,可以設置自動變化時間的變量嗎?就是不需要接收時間數據,自動變化5. html5和Flash對抗是什么情況?6. docker綁定了nginx端口 外部訪問不到7. android-studio - android app微信登錄一定要申請了登錄權限才能測試?8. 發現了多個名稱為[spring_web]的片段。相對順序不合法9. 求救一下,用新版的phpstudy,數據庫過段時間會消失是什么情況?10. html - 爬蟲時出現“DNS lookup failed”,打開網頁卻沒問題,這是什么情況?
