在使用 ViewBinding 时,我遇到了一些没有记录的案例。
第一:如何获取包含的通用视图布局部分的绑定,主绑定只看到主布局中的项目?
第二:如何获得包含的合并类型布局部分的绑定,再次主绑定只看到主布局中的项目?
我有一个风格,其中包含与我的main源集中相同的布局资源。这是因为它用特定的风味覆盖了主要的。我在很多地方都这样做过,在我引入ViewBinding. 为准确起见,布局是“包含”在片段中的嵌套布局。
这是结构:
main
- res
- - layout
- - - layout_sign_up_details_fields.xml
flavor
- res
- - layout
- - - layout_sign_up_details_fields.xml
Run Code Online (Sandbox Code Playgroud)
我til_sudf_first_name在我的主要资源中没有的特定于风味的布局资源中有一个视图,其 ID 是。这是有意的。View通过在运行此构建变体时查看生成的源,我可以看到这是在我的绑定类中“绑定”的。
main
- res
- - layout
- - - layout_sign_up_details_fields.xml
flavor
- res
- - layout
- - - layout_sign_up_details_fields.xml
Run Code Online (Sandbox Code Playgroud)
现在实际绑定发生在“基”类中,并使用protected可见性修饰符与子类共享,如下所示:
@NonNull
public final TextInputLayout tilSudfFirstName;
Run Code Online (Sandbox Code Playgroud)
问题是detailsBinding不包含我需要的视图,即使它存在于生成的类中。
此外,另一个奇怪的事情是,即使main布局文件中存在不在特定于风味的布局文件中的视图,它们仍然包含在生成的布局文件中。
我正在尝试做的甚至可能吗?我可用的解决方法是对这个实例使用 kotlin 的综合视图处理,因为我一直在尝试使用推荐的方法
data-binding android android-layout android-flavors android-viewbinding