gpt4 book ai didi

android - 你可以在同一个 Activity 中使用 dataBinding 和 ViewBinding 吗?

转载 作者:行者123 更新时间:2023-12-04 12:39:15 26 4
gpt4 key购买 nike

我想在同一个 Activity 中使用 ViewBinding 和 DataBinding。如果这是可能的,您将如何在 Activity 中实现它?

这是我到目前为止尝试过的,

@Override
protected void onCreate(Bundle savedInstanceState) {
ActivityMainBinding viewBinding = ActivityMainBinding.inflate(getLayoutInflater();
View view = viewBinding.getRoot();
setContentView(view)

ActivityMainBinding dataBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);

}

最佳答案

创建 ViewBinding 是因为有些人使用 DataBinding 只是为了在 java/kotlin 代码中获取绑定(bind)类并使用引用(而不是使用数据字段直接在 xml 中设置值)。数据绑定(bind)包括 ViewBinding 所拥有的所有内容,因此它并非旨在与 View 绑定(bind)一起工作。
最大的问题是生成的类之间的命名冲突。 ViewBinding 和 DataBonding 都希望生成类 MainLayoutBinding用于布局 main_layout.xml .
现在可能有一种使用自定义命名的方法,但它并不值得,原因如下:
您想要两者的唯一原因很可能是这样您就不必将所有 xml 包装在 <layout>...</layout> 中。并在默认情况下获得绑定(bind),但这是一个很小的工作量,它并不值得让两个库并排工作。
如果您想在 xml 中设置数据,只需使用数据绑定(bind),并将其作为标准做法,使用 <layout> 包装所有 xml所以你总是可以通过绑定(bind)类来引用 View 。
如果您不想在 xml 中设置数据,只需使用 View Binding。
但是,如果您真的想这样做,我认为您可以使用以下方法设置数据绑定(bind)名称:

<data class="DataBindingName">
</data>

关于android - 你可以在同一个 Activity 中使用 dataBinding 和 ViewBinding 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61277029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com