在我当前的项目中,我正在像这样膨胀视图。我重写了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
?
答案 0 :(得分:0)
您可以使用
myView.apply {
//set your views here without prefix
}
阻止设置您的文本视图