我知道之前曾有人问过这个问题,但似乎没有解决方法。我试图通过一个名为RecyclerView
的int变量来跟踪topView
中最可见的项,该变量是通过将视图的标签(“ Any”类型)转换为Int来填充的:< / p>
var topView = citationRecyclerView!!.getChildAt(0)?.tag as Int?
我希望在视图通过onClick视图滚动时以及在该视图滚动时更新该变量:
if (recyclerView.getChildAt((topView + 6)) != null) {
recyclerView.scrollToPosition(topView + 6)
topView = (topView + 6)
}
第二个代码块中topView的每个实例都给了我名义错误。我知道这是为了防止从另一个线程更改该值,但我只打算在此处访问它。如何比较并递增此Int?
答案 0 :(得分:3)
Kotlin编译器还巧妙地指出“哟,如果topView
是null
怎么办?”。
如果答案是如果topView
为null
时您什么都不做,则可以使用?.let()
:
topView?.let {
val index = it + 6
if (recyclerView.getChildAt(index) != null) {
recyclerView.scrollToPosition(index)
topView = (index)
}
}