rk3399 android7.1上无法使用fragmentViewBinding,但find byid 是能正常获取到view的,需要从哪几个方面排查问题
时间: 2024-03-13 18:42:45 浏览: 64
RK3399_android7.1_root(7.1 root补丁).rar
如果在使用 `fragmentViewBinding` 时出现了问题,可以从以下几个方面排查问题:
1. 确认是否在 Fragment 中正确配置了 ViewBinding
在 Fragment 中需要使用以下代码进行 ViewBinding 的配置:
```
private var _binding: FragmentExampleBinding? = null
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = FragmentExampleBinding.inflate(inflater, container, false)
val view = binding.root
return view
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
```
其中,`FragmentExampleBinding` 是根据 Fragment 布局文件自动生成的绑定类。需要注意的是,绑定类的名称是以布局文件的名称为前缀并添加 “Binding” 后缀而形成的。
2. 确认是否在 Fragment 中正确使用 ViewBinding
在 Fragment 中正确使用 ViewBinding 的方式是使用绑定类的实例来获取 View 。例如:
```
binding.textView.text = "Hello"
```
如果使用 `findViewById` 能够获取到 View 但是使用 `binding` 却无法获取到 View,就需要确认绑定类是否正确配置。
3. 确认是否在 Fragment 中正确实例化 ViewBinding
在 Fragment 中未正确实例化 ViewBinding 会导致无法使用 `binding` 来获取 View ,但是使用 `findViewById` 是可以正常获取到 View 的。因此,在使用 `binding` 时需要确认是否正确实例化了 ViewBinding。例如:
```
private val binding by lazy { FragmentExampleBinding.bind(view) }
```
这样就可以通过 `binding` 来获取 View 了。
4. 确认是否在 Fragment 中正确使用 View 的 ID
如果以上步骤都没有问题,可以尝试确认是否在 Fragment 布局文件中正确定义了 View 的 ID,并且在 Fragment 中正确使用了这些 ID。
希望这些提示能够帮助您解决问题。
阅读全文