android-RecyclerView项目以编程方式出现问题

时间:2018-09-03 07:09:17

标签: android android-recyclerview android-relativelayout anko

我正在尝试使用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开始重新使用它的支架时,我遇到了一些问题,请查看以下屏幕截图。

Good

Bad

如您所见,RelativeLayout规则无法正常运行。标题textView与标记标记重叠或发出计数器textView。也许我应该以某种方式invalidate(),但我已经尝试过-不起作用。

1 个答案:

答案 0 :(得分:0)

您在更新规则后尝试使用updateViewLayout吗?

这里是示例: https://stackoverflow.com/a/6801082/6055194