我正在尝试使用Anko库以编程方式创建RecyclerView
项目,我想在一个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()
,但我已经尝试过 - 不起作用。
您是否尝试在更新规则后使用updateViewLayout
?