RecyclerView повторное использование переменных в пользовательском представлении - PullRequest
0 голосов
/ 14 апреля 2020

Я создаю собственный ExpandableTextView для использования в RecyclerView.

class ExpandableTextView : AppCompatTextView, View.OnClickListener {

    private var isCollapsed = true
    ...

Само пользовательское представление работает, но при использовании в RecyclerView состояние расширения также перерабатывается с помощью ViewHolder. Я подозреваю, что var isCollapsed также используется повторно. Как я могу заставить RecyclerView правильно отображать TextView и его расширяющееся состояние? Могу ли я сделать так, чтобы мои переменные не использовались повторно?

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

Редактировать: я добавил GIF , чтобы уточнить. Когда я нажимаю на первый TextView, последний также расширяется. Извините, я не могу опубликовать изображение еще!

1 Ответ

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

Вот что вы можете сделать, чтобы сделать переменную isCollapsed publi c, чтобы вы могли изменить ее извне

class ExpandableTextView : AppCompatTextView, View.OnClickListener {

    var isCollapsed = true
    ...

Ваш адаптер

override fun onBindViewHolder(viewHolder :YourViewHolder, position:Int) {
    viewHolder.expandleTextView.isCollapsed = true
// Rest of your code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...