private fun initRecyclerView(){
studentRecyclerView.layoutManager=LinearLayoutManager(this)
layoutManager.reverseLayout=true
layoutManager.stackFromEnd=true
adapter = StudentRecyclerViewAdapter{
selectedItem:Student -> listitemclicked(selectedItem)
}
studentRecyclerView.adapter=adapter
displayStudentList()
}
我想反转recycler视图,但是每当我使用layoutManager.reverseLayout
和layoutManager.stackFromEnd
时,这些行都会抛出一个错误。
我不知道该怎么办。
1条答案
按热度按时间bybem2ql1#
setReverseLayout
和setStackFromEnd
都是LinearLayoutManager
类上的函数,而不是LayoutManager
基类上的函数,所以你必须确保你引用的变量是LinearLayoutManager
类型(或者强制转换):studentRecyclerView.layoutManager
的类型只是LayoutManager
的基类(所以你可以提供布局管理器的不同实现),所以如果你 * 读 * 那个属性,你只会得到一个LayoutManager
.如果你想把它当作一个LinearLayoutManager
来处理(并且访问那个类型的函数和属性),你必须强制转换它:这是混乱的,但它通常是更好的,只是持有自己的引用与正确的类型-没有必要复杂的事情,特别是在一个简单的设置块!
因为是Kotlin,所以
set*
函数可以写成属性(例如layoutManager.reverseLayout = true
),如果合适的话,IDE会将函数版本更改为属性版本。