Размер карточки RecyclerView 3/4 экрана
Есть RecyclerView в котором есть вертикальный список карточек. И вот вопрос, можно ли как-то засетить их размер на 3/4 (75%) высоты экрана?
Если задать им размер в dp то экран будет не адаптивный, на одном телефоне он займет весь экран, а на другом половину. Знаю что можно написать свой LayoutManager, но это задача не из тривиальных, а хочется как бы нормального решения и при этом чтоб не писать полотно кода.
Если у кого-то есть идеи как это можно реализовать буду рад.
UPD:
Условно, у нас все карточки должны занимать вот такой размер экрана. И внизу следующая карточка должна выглядывать.
Ответы (1 шт):
В целом решение через переопределение LayoutManager оказалось достаточно простым. Нужно всего-лишь переопределить метод checkLayoutParams() и в нем задать размер нашего ViewHolder-a.
recyclerView.layoutManager = object : LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false) {
override fun checkLayoutParams(params: RecyclerView.LayoutParams?): Boolean {
val displayMetrics = DisplayMetrics()
val windowManager = requireContext().getSystemService(Context.WINDOW_SERVICE) as WindowManager
windowManager.defaultDisplay.getMetrics(displayMetrics)
val height = displayMetrics.heightPixels
params?.width = width * 0.75
return true
}
}
Спасибо @Andrew за ссылку.
