android - 为什么它会抛出类似“没有从 onCreateView() 返回视图或在 onCreateView() 之前调用它。”之类的错误?
问题描述
我的项目有问题,我的代码没有任何错误,但是当我构建项目时,它会抛出一个错误 viewPager2 = requireView().findViewById(R.id.vpager)
,我不知道为什么?有什么想法吗?
class MyFragment : Fragment(R.layout.fragment_my) {
lateinit var viewPager2: ViewPager2
lateinit var adapter: VideoAdapter
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
/**set find id*/
viewPager2 = requireView().findViewById(R.id.vpager)
/**set database*/
val mDataBase = Firebase.database.getReference("videos")
val options = FirebaseRecyclerOptions.Builder<VideoModel>()
.setQuery(mDataBase,VideoModel::class.java)
.build()
/**set adapter*/
adapter = VideoAdapter(options)
viewPager2.adapter = adapter
return view
}
override fun onStart() {
super.onStart()
adapter.startListening()
}
override fun onStop() {
super.onStop()
adapter.stopListening()
}
}
解决方案
尝试这个
类我的片段:片段(){
lateinit var viewPager2: ViewPager2
lateinit var adapter: VideoAdapter
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val view = inflater.inflate(R.layout.fragment_my,容器,假)
return view
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
/**set find id*/
viewPager2 = view.findViewById(R.id.vpager)
/**set database*/
val mDataBase = Firebase.database.getReference("videos")
val options = FirebaseRecyclerOptions.Builder<VideoModel>()
.setQuery(mDataBase,VideoModel::class.java)
.build()
/**set adapter*/
adapter = VideoAdapter(options)
viewPager2.adapter = adapter
}
override fun onStart() {
super.onStart()
adapter.startListening()
}
override fun onStop() {
super.onStop()
adapter.stopListening()
}
}
推荐阅读
- android - 读取 .txt 并将信息放入 hashMap
- python - 更快地创建多个数据帧。for循环太慢了
- reactjs - TS2349:无法调用其类型缺少调用签名的表达式
- java - 我用来创建 ListView 的代码以某种方式使我的 setContentView(R.layout.activity_main); 不工作,我不知道该怎么办
- snowflake-cloud-data-platform - 如何在雪花中找回丢失的工作表?
- javascript - 前几次执行 setTimeout() 的浏览器时间不到 4 毫秒
- c# - 启用无边界表单的移动性后如何进行 OnClick 事件
- typescript - X 实现了 X——这是什么意思?
- c++ - 如何将字典添加到向量中?
- batch-file - 使用正则表达式的 findstr 函数