Изменение LayoutParams.height не меняет размер полностью на старом Android - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть ConstraintLayout с высотой WRAP_CONTENT, в котором я показываю / скрываю RecyclerView (или другой ConstraintLayout), меняя его высоту с 0 (MATCH_CONSTRAINT) на WRAP_CONTENT и обратно.

Работает отлично, но только на Android 8.0 и выше. Когда я тестировал его на Android 7.1.2 и 6.0, высота RecyclerView полностью изменилась, но ConstraintLayout немного изменил размер, показывая пустое пространство вместо RecyclerView

private fun onModelClick(view: View?) {
    val layoutParams = modelRecyclerView.layoutParams as ConstraintLayout.LayoutParams
    if (isModelVisible)
        layoutParams.height = 0
    else
        layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT
    modelRecyclerView.layoutParams = layoutParams
    isModelVisible = !isModelVisible
}

1 Ответ

0 голосов
/ 20 апреля 2020

https://github.com/material-components/material-components-android/issues/537

Кажется, это ошибка MaterialCardView, в которой был сохранен ConstraintLayout. Переход на старый CardView или обновление до 1.2.0-alpha06 устраняет проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...