在Androidx 以及开启了ViewBinding的情况下使用了TabLayout,在启动的时候发生崩溃
java.lang.NullPointerException: Missing required view with ID: com.xx.xx.:id/xxxxxx
部分xml
在执行xxxBinding.inflate的时候报错
解决办法:
把TabLayout 中的item的id都去掉
原因么:就是它并未添加到TabLayout中,所以viewBinding找不到它,去掉就行了
TabItem 是一个特殊的“视图”,它允许您在布局中为 TabLayout 声明选项卡项。这个视图实际上并没有添加到 TabLayout,它只是一个允许设置选项卡项的文本、图标和自定义布局的虚拟视图。有关如何使用它的更多信息,请参阅 TabLayout。另请参阅:选项卡布局
去掉之后的访问方式:
val count: Int = binding?.layoutTable?.tabCount
for (i in 0..count) {
val tabAt = binding?.layoutTable?.getTabAt(i)
}
参考: https://stackoverflow.com/questions/66320075/missing-required-view-with-id-with-view-binding-and-navigation-component
完结!



