Как изменить ограничения, указанные c ViewHolder в RecyclerView - PullRequest
0 голосов
/ 16 марта 2020

Цель состоит в том, чтобы получить viewHolders с различными параметрами ширины. Я добавил ItemDecoration для упрощения объяснения.

Попытка 1: Создание в RecyclerView.Adapter настраиваемого макета с LayoutParams установленным WRAP_CONTENT и TextView с рандомизированным textSize .

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val inflater = LayoutInflater.from(parent.context)

    val newItem = ConstraintLayout(parent.context)
    newItem.layoutParams = RecyclerView.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)

    val currency_symbol_text = TextView(parent.context)
    currency_symbol_text.text = "Test"
    currency_symbol_text.textSize = Random.nextInt(10,40).toFloat()

    return ViewHolder(newItem)
}

Ожидаемый результат: Каждый из ViewHolder рисуется с WIDTH и HEIGHT соответствующими параметрами макета.

Фактический результат: all ViewHolders ограничение на основе первого предоставленного макета

enter image description here

Вызов

adapter.notifyDataSetChanged()

делает то же самое, повторно создавая макеты разных размеров в тех же границах, что и они были инициализированы при первом вызове адаптера.

Возможно ли в recyclerView хранить ViewHolders с разными параметрами?

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