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

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

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

membalas semua(2)
阿神

Penggunaan semula memerlukan paparan jenis yang sama.
Menurut penerangan, jenis setiap item adalah unik, iaitu, ia bukan perkara yang sama dan kod tidak dapat mengetahui sama ada ia boleh digunakan semula.
Seharusnya terdapat kekeliruan di sini, mencampurkan pengecam unik (id) yang diperlukan di tempat lain dengan jenis yang diperlukan oleh RecyclerView Jika anda mahu Paparan dua Item dikongsi, jenis kedua-dua Paparan hendaklah sama (id mereka Mungkin. menjadi berbeza)

巴扎黑

+1 Jenis item di tingkat atas berbeza dan tidak boleh digunakan semula

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!