Я пытаюсь создать элемент RecyclerView
программно, используя библиотеку Anko, и я хочу сделать все это в одном RelativeLayout
для лучшей производительности.
Название моего предмета должно быть match_parent
, но оно не должно охватывать маркер флага (hasImportantMessages
) или число справа (issues counter
), поэтому я использую этот код для настройки RelativeLayout
правила:
with(tvTitle.layoutParams as RelativeLayout.LayoutParams) {
removeRule(START_OF)
removeRule(ALIGN_PARENT_END)
when {
hasImportantMessages -> addRule(START_OF, R.id.iv_important_messages)
issueCounter > 0 -> addRule(START_OF, R.id.tv_issues_counter)
else -> addRule(ALIGN_PARENT_END)
}
}
Когда RecyclerView создает первые видимые ViewHolders, все в порядке, но когда я немного прокручиваю вниз и RecyclerView начинает повторно использовать его держатели, у меня возникают некоторые проблемы с этим, проверьте эти снимки экрана.
Как видите, правила RelativeLayout не работают должным образом. Заголовок textView перекрывает маркер флага или выдает счетчик textView. Может быть, мне стоит как-то invalidate()
, но я уже попробовал - не работает.