drakeet / MultiType

Flexible multiple types for Android RecyclerView.
Apache License 2.0
5.76k stars 751 forks source link

希望改进一下 #179

Closed Antine closed 7 years ago

Antine commented 7 years ago

希望改进一下在classLink回调时不满足bean判断条件的,或retuen null时不显示布局,在设置item count,不是返回mList.size(),而是去除不能满足条件的数据后的count。

drakeet commented 7 years ago

感谢建议,但这么做的话,实现起来将特别困难。不显示布局意味着 RecyclerView.Adapter.getItemCount() 方法等都要实时去除无 link item,这很难做到而且也不合理,因此该建议目前看来无法接受,您可以尝试实现并发起 PR,此 issue 暂时关闭。

drakeet commented 7 years ago

一旦设置 linker,就必须有 links,如果一个 item 没有 link,那么作为程序库来说,不应该将这个错误湮灭掉不显示 UI,要做也是抛出异常,所以目前 MultiType 那么做并无不妥,而且用户完全可以在找不到 link 时自行抛出异常。或提供默认万能 binder.

drakeet commented 7 years ago

最后,在 get item count 方法的实现上也不可能每次去遍历所有 item 是否有 link 然后过滤掉,这么做性能会差很多,而且作为默认行为也是不合理的,外界用户根本不会意料到程序内部有这样的机制,那么当用户传入一个找不到 binder 的 item 时,他会很困惑获得的结果。因此你的这个诉求和建议并不太合理。

Antine commented 7 years ago

感谢大佬 答疑解惑