[英]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
允许您传入已经膨胀的文件(例如Activity
或Fragment
的view
)。
您可以使用任何方便的方法 - 如果您无论如何都需要充气(例如,如果您正在为RecyclerView
创建ViewHolder
),您也可以使用inflate
。 否则bind
将采用现有的层次结构并查找它需要的所有视图。 无论哪种方式,您最终都会为布局中的每个 ID 提供一个变量,并且每个 ID 都指向该层次结构中的实际View
,就好像它findViewById
为每个 ID 找到了一样。
如果一切都说得通,但仍然无法正常工作,请尝试构建您的应用程序(您可以在 Build 菜单中进行Rebuild
)。 绑定类应该在您创建布局时自动生成,并且代码编辑器应该会立即识别它们,但有时需要启动。 如果正在播放,可能需要执行清理或无效缓存/重新启动
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.