如何使用ViewBinding,引用来自“其他”布局XML的视图ID,我现在有一个Naviactivity2和mainactivity,viewbinding只能搜到Mainactivity的控件,对于另外一个UI活动和其他片段的XML控件都识别不了,我应该怎么做
1条回答 默认 最新
关注
让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
在使用ViewBinding时,通过使用`bind()`方法绑定布局文件来访问视图ID,但是通常情况下只能访问布局文件对应的视图ID。如果想要引用其他布局文件的视图ID,可以使用静态方法`inflate()`来加载对应的布局文件,然后通过`root`属性来获取布局文件的根视图,进而访问其中的视图ID。 例如,在`Naviactivity2`中,我们可以先加载其他布局文件`other_layout.xml`,然后通过`root`属性来访问其中的视图ID:OtherLayoutBinding binding = OtherLayoutBinding.inflate(getLayoutInflater()); View view = binding.getRoot(); // 访问其他布局文件中的视图ID TextView textView = view.findViewById(R.id.other_textView);
这样就可以在
Naviactivity2
中访问其他布局文件中的视图ID了。 需要注意的是,由于ViewBinding是在编译时生成的类,所以确保其他布局文件的布局文件名称与生成的类名保持一致,例如other_layout.xml
对应的生成类为OtherLayoutBinding
。 另外,在访问其他布局文件的视图ID时,可以提前将其他布局文件的根视图加载到内存中,以提高访问效率。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用