Kotlinx-为视图使用不同的根视图

时间:2019-03-06 21:39:50

标签: android kotlin kotlin-android-extensions

在我当前的项目中,我正在像这样膨胀视图。我重写了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

1 个答案:

答案 0 :(得分:0)

您可以使用

myView.apply { 
//set your views here without prefix
}

阻止设置您的文本视图