繁体   English   中英

Android 查看Binding - 如何做有条件的inflation

[英]Android view Binding - how to do conditional inflation

我试图控制基于 boolean 的绑定文件,但 android 不会编译并说找不到 ID。 这是我到目前为止所拥有的:

private val binding =
        if (config.isExperimentOn()) {
            ExperimentBinding.inflate(LayoutInflater.from(context), this, false)
        } else {
            OriginalBinding.inflate(LayoutInflater.from(context), this, false)

        }

我试着把它放在一个惰性块中,没有帮助。 如果我注释掉 if 条件,只要我只选择一个绑定,一切都有效。 如何在这里进行条件绑定? 请记住,文件将具有相同的 ID,因为它们几乎是重复的。

我终于弄明白了……

您的视图绑定文件有一个绑定方法,这意味着它可以绑定到您想要的任何布局。 所以首先我膨胀我想要的相应布局然后我稍后绑定到它:

val layout = if (predicate) {
        inflate(R.layout.layout_one)
    } else {
        inflate(layout_two)
    }


private val binding =
        MyBinding.bind(layout) 
//force your binding to take the respectivelayout

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM