Размер карточки RecyclerView 3/4 экрана

Есть RecyclerView в котором есть вертикальный список карточек. И вот вопрос, можно ли как-то засетить их размер на 3/4 (75%) высоты экрана?

Если задать им размер в dp то экран будет не адаптивный, на одном телефоне он займет весь экран, а на другом половину. Знаю что можно написать свой LayoutManager, но это задача не из тривиальных, а хочется как бы нормального решения и при этом чтоб не писать полотно кода.

Если у кого-то есть идеи как это можно реализовать буду рад.

UPD:

Условно, у нас все карточки должны занимать вот такой размер экрана. И внизу следующая карточка должна выглядывать.

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Sergei Buvaka

В целом решение через переопределение 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 за ссылку.

→ Ссылка