我有 2 个应用程序,它们的功能基本相同,但它们的数据架构略有不同,其中包含许多共享变量,例如:
data class modelOne (
val uniqueModelOne: String,
val dateCreated: Date,
val dateLastModified: Date
)
data class modelTwo (
val uniqueModelTwo: String,
val dateCreated: Date,
val dateLastModified: Date
)
我制作了一个基础视图模型,它位于一个库模块中,两个应用程序都可以从该模块继承来处理共享参数,并且我在每个应用程序项目中都有一个子视图模型,它扩展了该基础并添加了每个应用程序的唯一参数应用。
class BaseViewModel (): ViewModel() {
val dateCreated: ObservableField<Optional<Date>> = ObservableField()
val dateLastModified: ObservableField<Optional<Date>> = ObservableField()
init {
...
dateCreated.set (...)
dateLastModified.set (...)
}
}
class ChildViewModelOne: BaseViewModel() {
val uniqueModelOne: ObservableString = ObservableString()
init {
...
uniqueModelOne.set (...)
}
}
class ChildViewModelTwo: BaseViewModel() {
val uniqueModelTwo: ObservableString = ObservableString()
init {
...
uniqueModelTwo.set (...)
}
}
我真的希望只有一个实现数据绑定的视图,并且能够根据我所在的应用程序交换该视图中的视图模型变量,以便我可以将该视图文件保存在库模块中,而不是复制视图。
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="viewModel"
type="ChildViewModelOne" /> <!-- I want to be able to change that type dynamically depending on what app I am in -->
</data>
这样的事情有可能吗?