在RecyclerView的官方guide上, 是
z=20
我无法理解尖括号的含义,
我的直觉是它们类似于关键字public FoodItemAdapter(Activity context, List<FoodItemclass> arrayList)
{
super(context,0,arrayList);
}
,对吗?
recyclerView = findViewById<RecyclerView>(R.id.my_recycler_view).apply {
// use this setting to improve performance if you know that changes
// in content do not change the layout size of the RecyclerView
setHasFixedSize(true)
// use a linear layout manager
layoutManager = viewManager
我声明为as
的
recyclerView = view.findViewById<RecyclerView>(R.id.recycler_view) as RecyclerView
that I use in my Fragment( please notice the variable view
答案 0 :(得分:1)
找到了! 在此
post有明确的解释:
您的API级别为26,此时findViewById的返回类型为 泛型T代替View,因此可以进行推断。你可以看到 相关的更改日志在这里。
因此您应该能够做到这一点:
val recycler_view = findViewById(R.id.recycler_view)或 这个:
val recycler_view:RecyclerView = findViewById(R.id.recycler_view)
答案 1 :(得分:-1)
这就像一个构建器模式
同一示例通常会写为
viewManager = LinearLayoutManager(this)
viewAdapter = MyAdapter(myDataset)
recyclerView = findViewById<RecyclerView>(R.id.my_recycler_view)()
recyclerView.setHasFixedSize(true)
recyclerView.setLayoutManager(viewManager)
recyclerView.adapter(viewAdapter)
但是kotlin通过使用类似于构建器模式的方式简化了这一过程
viewManager = LinearLayoutManager(this)
viewAdapter = MyAdapter(myDataset)
recyclerView = findViewById<RecyclerView>(R.id.my_recycler_view).apply {
setHasFixedSize(true)
layoutManager = viewManager
adapter = viewAdapter
}
这种方法有助于以更有效的方式隔离代码