我知道这个问题以前有人问过,但似乎没有解决方案。我正在尝试使用名为topView
的int变量来跟踪回收器视图中
的顶部可见项目,该变量通过将视图的标记(类型“Any”)转换为Int来填充:
var topView=citationRecyclerView!!。getChildAt(0)?。标记为Int
我希望当视图通过视图的 onClick 滚动时以及如果视图滚动时更新该变量:
if (recyclerView.getChildAt((topView + 6)) != null) {
recyclerView.scrollToPosition(topView + 6)
topView = (topView + 6)
}
第二个代码块中的每个topView实例都给了我名义上的错误。我知道这是为了防止值被另一个线程更改,但是我只打算在这里访问它。我如何比较并递增这个Int?
Kotlin 编译器还巧妙地指出“哟,如果 topView
为空
,我们该怎么办?
如果答案是如果topView
为null
,则不想执行任何操作,则可以使用?。let()
:
topView?.let {
val index = it + 6
if (recyclerView.getChildAt(index) != null) {
recyclerView.scrollToPosition(index)
topView = (index)
}
}
当我构建我的项目时,我得到了这个错误 下面是kotlin类代码 我不知道如何解决它
为了简化我的真实用例,让我们假设我想在一个列表中找到最大的数字: 但是,编译失败并出现以下错误: 智能强制转换为“Int”是不可能的,因为“max”是一个由变化的闭包捕获的局部变量 为什么更改的闭包会阻止智能强制转换在此示例中起作用?
我知道是可变变量,但我显式检查了并且是类型,那么为什么不能智能转换为该类型呢? 我怎样才能把它修好呢?
“智能强制转换为”GridLayoutManager“是不可能的,因为”ViewManager“是一个可变属性,此时可能已发生更改。” 是AndroidStudio在尝试向RecolyerView添加分隔符时显示的错误。
我还在另一个类中使用了bitmap2和Bitmap1: 这里写着:类型不匹配,必需:位图找到:位图?
我正在尝试在 Kotlin 中生成一个单例,并且遇到了问题,因为我无法。 这似乎是制作单例的一种非常标准的方法。为什么它不让我,我该如何解决它?