【发布时间】:2020-06-04 16:54:47
【问题描述】:
我有一个 RecyclerView,在它的布局中有一个视图“tvDateGrouped”,我希望它仅在当前位置日期和上一个位置日期不同时显示。 下面是我试过的代码,但它不起作用
这段代码在适配器类中,在 onBind() 方法中
if (position != 0 && transactions[position].date ==
transactions[holder.adapterPosition.minus(1)].date) {
holder.view.tvDateGrouped.visibility = View.GONE
} else {
holder.view.tvDateGrouped.text = formattedDateString
}
如果我改变位置 != 1 ,应用程序崩溃
以下是应用崩溃时的代码
if (position != 1 && transactions[position].date ==
transactions[holder.adapterPosition.minus(1)].date) {
holder.view.tvDateGrouped.visibility = View.GONE
} else {
holder.view.tvDateGrouped.text = formattedDateString
}
编辑:我已将代码更改如下,但应用程序现在崩溃了-
if ((transactions[position].date == transactions[position - 1].date) &&
(position > 0)) {
holder.view.tvDateGrouped.visibility = View.GONE
} else {
holder.view.tvDateGrouped.visibility = View.VISIBLE
holder.view.tvDateGrouped.text = formattedDateString
}
请帮我解决这个问题
【问题讨论】:
-
0 - 1 = -1,无效索引。在第一段代码中,您可以防止这种情况发生,但在第二段代码中没有。
标签: android kotlin android-recyclerview android-adapter realmrecyclerviewadapter