我正在尝试实现一个RecyclerView,我遵循了这个教程:https://developer.android.com/codelabs/basic-android-kotlin-training-recyclerview-scrollable-list#4
但我试图将其实现为一个片段,而不是主Activity,但它最终无法工作,因此我开始遵循以下教程:https://www.youtube.com/watch?v=__gxd4IKVvk
在大约24分钟时,我们将代码写入片段的.kt文件中,他使用了一种现在已弃用的方法(onActivityCreated),所以我将代码放到onCreateView中。他可以通过将id写为var来访问xml文件中的id,但这对我来说不起作用,因此我在将布局膨胀到瓦尔“视图”中之后访问了它。(.layoutManager,.itemAnimator,.adapter),但是IDE说这些都是未解析的引用。我在网上找到的所有内容都表明它应该正常工作,或者我应该使用“.setLayoutManager”和“.setAdapter”,但它们都给予同样的错误我不明白我错过了什么。
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
val view = inflater.inflate(R.layout.fragment_exercises, container, false)
val recyclerItems = view.findViewById<RecyclerView>(R.id.exercise_recycler_view)
.hasFixedSize()
recyclerItems.layoutManager = LinearLayoutManager(context)
recyclerItems.itemAnimator = DefaultItemAnimator()
recyclerItems.adapter = ExerciseItemAdapter(viewModel)
return view
}
下面是.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background"
tools:context=".fragments.ExercisesFragment">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/exercise_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
app:layoutManager="LinearLayoutManager" />
</LinearLayout>
1条答案
按热度按时间hl0ma9xz1#
我看了你提供的视频。
视频中的人能够直接访问
RecyclerView
,因为他使用的是Kotlinsynthetic插件:**注意:**这是过时的,您使用的是正确的。或者您可以使用更新的ViewBinding。
为什么有未解析的引用
因
recyclerItems
变为Boolean
类型,而不是RecyclerView
。所以这样做: