leo
leo
可以参考我自己开发的 [matrix-trace-processor](https://github.com/LinXiaoTao/matrix-trace-processor)
最后生成的火焰图
我也遇到这个问题。暂时通过设置不同的 `viewType` 来解决。
@lixi0912 我通过调用 ``` java .getRecycledViewPool().clear(); ``` 不起作用。。。
@lixi0912 有点没太明白你说的。我还原下我的使用场景: 一开始先 `addAdapter` 添加两个 apdater,在执行完某个操作后,`removeAdapter` 之前添加的,再重新添加两个 adapter。 我也看过 `DelegateAdapter` 重新计算 sub adapter 的 viewType,是通过 sub adapter 的 index,和 sub adpter 返回的 viewType 综合重新计算的。 那么一开始删除了两个 sub adapter,又重新添加了两个 sub adapter,同时 sub...
@lixi0912 ``` java //init mDelegateAdapter.setAdapters(Arrays.asList(mRecentSearchAdapter, mHotSearchAdapter)); //load data callback public void onSearchEmpty(){ mDelegateAdapter.setAdapters(Arrays .asList(mCommoditySearchEmptyAdapter, mOtherSearchAdapter)); } ``` 这种情况下,subAdapter 的 index 实际和第一次应该是相同的,viewType 也会计算一样。 这样的说法是否正确?
@lixi0912 是的,这个四个 sub adapter 都是调用默认的 `super.getItemType(int)`,就会导致第二次 `setAdapters` 时,相同 `index` 的 sub adpter 出现缓存 viewholer 问题。 至于 `RecyclerViewPool.clear()` 没立即起作用,要看下源码才清楚了。 谢谢你的解答。
@lixi0912 没看过源码,不知道这个修改 subAdapter 的数据对这个 viewType 的缓存问题有什么影响?能解答下吗?
想放弃 +1,这感觉是个 KPI 项目
@337240552 可以参考我的项目:https://github.com/LinXiaoTao/matrix-trace-processor