Kotlinx - использовать другой корневой вид для просмотра - PullRequest
0 голосов
/ 07 марта 2019

В моем текущем проекте я раздуваю Виды вот так. Я переопределяю метод 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 голосов
/ 07 марта 2019

Вы можете использовать блок

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

, чтобы установить текстовые просмотры

...