qingmei2 / RxImagePicker

:rocket:RxJava2 and RxJava3 external support. Android flexible picture selector, provides the support for theme of Zhihu and WeChat (灵活的Android图片选择器,提供了知乎和微信主题的支持).
MIT License
1.2k stars 155 forks source link

Custom Item #18

Closed hvsimon closed 6 years ago

hvsimon commented 6 years ago

wechat 版本的 Item 是繼承 AlbumMediaAdapterMediaGrid 來改變 Item Layout。

如果 Item Layout 想要更客製化,例如:不要 mVideoDuration,就沒辦法直接繼承 MediaGrid, 因為在 MediaGrid::bindMedia 會初始化 mVideoDuration

如果 Override 它,去除 setVideoDuration,則會發現其他初始化的 method 都是 private 無法使用, 如果將初始化 method 直接複製過來,則會發現 PreBindInfo 的 field 沒辦法取得,因為它的作用域是預設的(也就是 protected)

如果不繼承 MediaGrid,那也不能直接繼承 AlbumMediaAdapter ,感覺走遠了 ..

想請問是否我理解錯誤?Custom Item 該如何實作?單純以 Item 不帶 mVideoDuration 為目標。

qingmei2 commented 6 years ago

@hvsimon

这是RxImagePicker的support库本身架构的问题,当时为了实现功能,对Matisse的抽象和封装做到的并不完美。

單純以 Item 不帶 mVideoDuration 為目標。

最耿直的方式是直接这样:

image

这可能不是很好的实现方式,究其原因是库UI层架构设计的问题。

我在下一阶段尝试重构 UI层的代码,尽量将Item、Perview这些东西通过接口抽象出来。

hvsimon commented 6 years ago

感謝回覆,期待你的新版本。