BaseProviderMultiAdapter多布局总结
大致梳理四种适配器的适用情况和使用流程。
BaseSectionQuickAdapter
适用于分组布局或只有两种类型的情况。需要重新封装数据类(继承JSectionEntity类),类型根据isHeader()方法确定,再由convert()和convertHeader()方法处理不同布局下的数据设置。
BaseMultiItemQuickAdapter
适用于类型较少,业务不复杂的多布局场景。数据类必须实现MultiItemEntity接口,重写getItemType()方法返回类型。接着在适配器中通过addItemType(int type, int layoutResId)方法将类型与布局绑定,最后由convert()方法根据类型处理数据。
BaseDelegateMultiAdapter
适用于数据类不方便扩展的多布局场景。数据类无需继承其他类或实现接口,类型在适配器中通过setMultiTypeDelegate()方法代理 返回。再由getMultiTypeDelegate().addItemType(int type, int layoutResId)方法将类型与布局绑定,最后由convert()方法根据类型处理数据。
BaseProviderMultiAdapter
适用于业务逻辑复杂的多布局场景。数据类无需继承其他类或实现接口,布局、类型、业务逻辑都在对应的ItemProvider中确定,还可以自定义ViewHolder。适配器中只需调用addItemProvider(BaseItemProvider itemProvider)将ItemProvider添加进来,然后在convert()方法中根据数据返回对应类型即可。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_41794891/article/details/131055762