在Activity中創建一個RecyclerView可以正常創建以及顯示,然后換了在 Fragment 中一直報錯說不能為空。
然后上網查了一下:
結論得出,我們通常把initView
方法寫在onCreateView
方法中,但是這個時候view可能並沒有返回,所以就找不到了,所以我們可以把初始化操作放在onActivityCreated
或onViewCreated
中
只要把 RecyclerView放到 onViewCreated 中初始化即可:
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) //模擬數據 var user1 = UserData() user1.age = "23" user1.sex = "男" user1.userName = "張三" var user2 = UserData() user2.age = "30" user2.sex = "女" user2.userName = "李四" var user3 = UserData() user3.age = "25" user3.sex = "保密" user3.userName = "劉柳" arrayList.add(user1) arrayList.add(user2) arrayList.add(user3) val takePhotoAdapter = TakePhotoAdapter(arrayList) recycler_View.adapter = takePhotoAdapter val gridlayout = GridLayoutManager(context!!, 2) recycler_View.layoutManager=gridlayout }