我有包含嵌套Recyclerview 的parentRecyclerview。 nestedRecyclerView 列出了几个项目:(Apple、Banana、Pear)。我想像这样粗体这个nestedRecyclerview的第一个项目(苹果):
**Apple**
Banana
Pear
-------
Apple
Banana
Pear
-------
Apple
Banana
Pear
我可以通过执行以下操作将其设置为bold每个嵌套回收器视图列表的第一项:
when (position) {
0 ->
// code to make apple bold
}
但这给了我:
**Apple**
Banana
Pear
-------
**Apple**
Banana
Pear
-------
**Appla**
Banana
Pear
我该怎么办?我会添加我所有的代码,但老实说,这是大量的代码,而且比苹果、香蕉、梨复杂得多。我更喜欢用 Kotlin 编写代码,但我也能理解 Java(如果你知道的话)。谢谢!
在网上搜索了很多,但大多数都谈论 onClickListener 事件。
尝试使用此创建变量来管理基于位置的视图粗体
class NestedAdapter(...) {
private var topItemBold = false
override fun onBindViewHolder(holder: NestedViewHolder, position: Int) {
val item = items[position]
if (topItemBold && position == 0) {
holder.textView.setTypeface(null, Typeface.BOLD)
} else {
holder.textView.setTypeface(null, Typeface.NORMAL)
}
// ... rest of your binding logic
}
并像这样更新你的父适配器
class ParentAdapter(...) {
override fun onBindViewHolder(holder: ParentViewHolder, position: Int) {
val nestedAdapter = holder.nestedRecyclerView.adapter as NestedAdapter
if (position == 0) {
nestedAdapter.topItemBold = true
} else {
nestedAdapter.topItemBold = false
}
}
所以在上面我们的
topItemBold
仅适用于父列表第一项的嵌套视图上的第一项