Мои трудовыебудни:
Надо было вместо вертикального списка с элементами во всю ширину сделать список, в котором у каждого элемента ширина по контенту, а в каждой строке списка должно быть столько элементов, сколько влезает по ширине.
Реализован старый список был на RecyclerView, так что я решил его и переделать. Решил, что надо найти решения двух разных задач: динамическая ширина элемента и динамическое количество элементов в строке, а потом смёрджить два решения в новый SuperAdapter и дело в шляпе.
Сказано – сделано.
Да хрен там, в итоге я понял, что если делать это вручную, то я в рамки этой таски точно не умещусь, и пошёл искать другое решение.
В итоге я наткнулся на гугловский FlexboxLayoutManager, казалось бы, предназначенный как раз для этой задачи. Довольный, затащил его в проект и реализовал.
А потом на ревью мне коллега покрутил пальцем у виска и сказал, что для этой задачи куда проще и удобнее сделать через ChipGroup, который как раз для этой цели и создан.
Но этот чёртов ChipGroup мне на мой запрос в гугле ни разу не вылез =)
Век живи, век учись. Оказалось, реально удобная штука, возьмите на заметку.
Особенно радует, что в ChipGroup можно с помощью addView добавлять не только наследников Chip, а любые вьюхи, и они все равно будут норм выстраиваться. Но часть методов / атрибутов правда перестанет работать, например singleSelection – потому что он работает только на Chip.
А вот к FlexboxLayoutManager есть вопросики: странновато он настраивается, странноватые дефолтные отступы между элементами, и сходу тоже непонятно, как их настраивать.
А вы бы как пошли эту задачу решать?) Я один такой тугой?)
Post #172
1.04K
- 😁 10
- 👍 7
- 👏 2
- 🌚 2
- 😈 1