繁体   English   中英

无法启用 viewBindings (kotlin)

[英]Trouble enabling viewBindings (kotlin)

我没有遵守单一活动模式并且在我的应用程序中有多个活动。 我可以使用 expandableListView 找到的所有示例都需要绑定。

我有:

1.)

buildFeatures {
            viewBinding = true
        }

2.)我的xml中的布局标签

我也尝试过使用我在一些教程中找到的包含标签,但是

 val binding = ProfileActivityBinding.inflate(layoutInflater)

没有解决绑定问题。 我是否误解了如何使用它?
任何提示表示赞赏


我应该注意到,在 MainActivity.kt 中尝试分配 MainActivityBinding 也不起作用。

当您启用视图绑定时,对于您拥有的每个布局 XML,它将生成一个以它命名的绑定类。 因此,如果您有profile_activity.xml ,它将生成一个名为ProfileActivityBinding的类。 该类的一个实例将为布局中的每个View都有一个变量,该变量具有一个 ID(命名类似,但它会从蛇形案例进行一些转换 - 例如my_button将被称为myButton

您可以通过调用其inflate方法或bind方法来获取此类的实例。 inflate会将profile_activity XML 文件膨胀到视图层次结构中, bind允许您传入已经膨胀的文件(例如ActivityFragmentview )。

您可以使用任何方便的方法 - 如果您无论如何都需要充气(例如,如果您正在为RecyclerView创建ViewHolder ),您也可以使用inflate 否则bind将采用现有的层次结构并查找它需要的所有视图。 无论哪种方式,您最终都会为布局中的每个 ID 提供一个变量,并且每个 ID 都指向该层次结构中的实际View ,就好像它findViewById为每个 ID 找到了一样。

如果一切都说得通,但仍然无法正常工作,请尝试构建您的应用程序(您可以在 Build 菜单中进行Rebuild )。 绑定类应该在您创建布局时自动生成,并且代码编辑器应该会立即识别它们,但有时需要启动。 如果正在播放,可能需要执行清理或无效缓存/重新启动

暂无
暂无

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

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