在我目前的项目中,我正在膨胀像这样的视图。我重写了一个init
方法,它允许我设置View
,并获得它的引用。
class MyView(context: Context) : View(context), MyWidget {
private lateinit var myView: View
override fun init(viewGroup: ViewGroup) {
myView = View.inflate(context, R.layout.layout_view, viewGroup)
myView.textView.text = "Welcome"
myView.nextButton.text = "Sign In"
}
}
然而,问题是,如果我使用kotlinx
,我需要在Views
前面加上我所有的myView.
。
myView.textView.text = "Welcome"
// instead of
textView.text = "Welcome"
两者在编译器眼中都是有效的,但是如果我忘记给它添加前缀,它将在运行时崩溃。
有没有办法告诉kotlinx
使用我创建的View
,而不是我扩展的View
?
您可以使用
myView.apply {
//set your views here without prefix
}
阻止设置您的文本视图