“智能强制转换为”GridLayoutManager“是不可能的,因为”ViewManager“是一个可变属性,此时可能已发生更改。”
是AndroidStudio在尝试向RecolyerView添加分隔符时显示的错误。
class PixelsFragment : Fragment() {
private lateinit var recyclerView: RecyclerView
private lateinit var viewManager: RecyclerView.LayoutManager
private lateinit var viewAdapter: RecyclerView.Adapter<*>
private var listener: OnFragmentInteractionListener? = null
private lateinit var pixels: List<Pixel>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
var numberOfColumns = 1
viewManager = GridLayoutManager(this.context, numberOfColumns)
viewAdapter = MyRecyclerViewAdapter(pixels)
recyclerView = view!!.findViewById<RecyclerView>(R.id.RVJanuary).apply {
setHasFixedSize(true)
layoutManager = viewManager
adapter = viewAdapter
addItemDecoration(DividerItemDecoration(recyclerView.context, viewManager.getOrientation())) //Error on this line, underlining viewManager
}
}
}
您已将viewmanager
声明为recyclerview.layoutmanager
。通用的RecyclerView.LayoutManager
没有GetOrientation()
方法-该方法仅存在于LinearLayoutManager及其子类(如您正在使用的GridLayoutManager)上。
错误消息告诉您的是,它不能假设RecyclerView.LayoutManager
类型的ViewManager
是一个GridLayoutManager
属性,因为它是一个可变属性-您可以将它设置为其他没有GetOrientation()
方法的LayoutManager
。
解决这一问题的最简单方法是将ViewManager
的类型更改为GridLayoutManager
。这样,只有GridLayoutManager
可用,而getOrientation()
保证可用。
智能转换为“GridLayoutManager”是不可能的,因为“ViewManager”是一个可变属性,此时可能已更改 是错误,AndroidStudio显示时,试图添加一个除法器到我的回收视图。 PixelsFragment.kt 我找到了这个答案,它说这样的问题可能是因为在执行该行时变量可能碰巧为< code>null,然后他们提供了3个解决方案。然而,根据我的理解,< code>viewM
所以我最近开始学习Kotlin,我正在学习Java语言的Android Studio教程。我最终使用Android Studio将Java文件转换为Kotlin。 如何修复此错误?
我知道是可变变量,但我显式检查了并且是类型,那么为什么不能智能转换为该类型呢? 我怎样才能把它修好呢?
我试图得到一个类,它结合了< code>Kotlin中的列表、集合和映射。我希望编写< code>isScalar函数,如果对象只包含一个元素,它应该返回< code>true 不幸的是,相比之下,它给了我一个错误 说着 据我所知,这与多线程假设有关。在Java,如果期望多线程,我会使函数。此外,如果我不编写线程安全的,我可以完全忽略这一点。 静态编程语言应该怎么写? 我看到了这个解决方案http
我正在用kotlin为android制作一个小型tasker。我将主要活动分成一些片段,然后为每个片段创建一个视图模型。但是现在这里出现了一个问题。 下面是一些代码: 我本来希望在observer方法的帮助下在主屏幕上看到一些创建的单选按钮,但是我得到了一个例外,这在问题的标题中提到。提前感谢您的帮助!
我正在尝试获得一个类,它在中组合了list、set和map。我希望编写函数,如果对象只包含一个元素,则该函数应该返回 不幸的是它给了我错误的比较 说 更新2 总结一下,就我的理解,在Kotlin中显式地将variable与进行比较是不可能/不合理的。因为一旦你比较它,下一次你就必须再次用隐式地用类似这样的操作来比较它,而你无法避免这种情况。