java - weeex[android]list的实现itemview没有进行重用
大家讲道理
大家讲道理 2017-04-18 10:53:21
0
2
501

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;
  }
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

Antworte allen(2)
阿神

进行重用要是同一个type的view才行.
按照描述, 每个item的type都是唯一的,也就是彼此都不是同一个东西,代码无法分辨具体能不能重用.
这里应该有个混淆, 把其他地方需要的唯一标识(id)和RecyclerView需要的type混在一起了.如果希望两个Item的View可以共用,这两个View的type就应该是一样的(它们的id可能不一样)

巴扎黑

楼上+1 itemtype不一样没法重用

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!