Страницы

Поиск по вопросам

среда, 22 января 2020 г.

Recyclerview не растягивается при освобождении места в layout несмотря на match_parent

#android #recyclerview #android_animation #android_constraintlayout


Ломаю голову и рою гугл уже несколько дней, не могу понять, по какой причине recyclerView
не растягивается при появлении свободного пространства.  

Задача такая: при прокрутке списка (recycler) вниз на хотя бы 1 элемент, view-элементы
над списком "ужимаются" и дают дополнительное место для списка. "Ужимаю" я их с помощью
анимации и библиотеки expectAnim. Привожу ниже xml layout'а, а так же скрины проблемы
и фрагмент кода анимации.





































А вот как это выглядит в результате:




При этом не суть важно, если ресайкл перемещается вслед за линией, например, то такое
же пространство у него появляется ПОД ним.

А как заставить его растягиваться? Пробовал и setHasFixedSize(false), и получать
layout и через params.height задавать значение, а после requestLayout() дёргать. Но
всё без толку.

Может быть я вообще не под тем углом смотрю на задачу?
    


Ответы

Ответ 1



На всякий случай отвечу на собственный вопрос, мало ли кто столкнётся с похожей проблемой. Проблема была в том, что проанимированные элементы не исчезали (GONE), а... не знаю даже, что там с ними библиотека делала. Похоже, что просто оставляла за пределами видимой части экрана. После проигрывания анимации ставлю им View.GONE, и делаю LinearLayout resize для RecyclerView - всё работает. Правда, появились доп. проблемы, как то, что при увеличении ресайкла "вверх", список в нём надо прокручивать (через вызов scrollToPosition). Но это уже мелочи.

Комментариев нет:

Отправить комментарий