Android数据绑定不同视图模型的相同布局

时间:2021-03-15 14:11:12

标签: android android-databinding

我有 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>

这样的事情有可能吗?

0 个答案:

没有答案