ViewBinding - это автоматически генерируемый класс, который решает проблему использования FindViewById () во всей вашей кодовой базе. Он также обеспечивает двустороннюю привязку, если это необходимо. Чтобы включить привязку вида, включите ее в своем проекте, как показано ниже:
// Available in Android Gradle Plugin 3.6.0
android {
viewBinding {
enabled = true
}
}
Для Android Studio Canary Версия:
// Android Studio 4.0
android {
buildFeatures {
viewBinding = true
}
}
Затем, когда вы создадите приложение, каждый макет будет автоматически создан файл привязки. Если ваш файл макета имеет имя Activity_main.xml
, то генерируется файл MainActivityBinding
, который вы можете использовать в вашей viewModel.
Теперь вы можете использовать этот класс привязки внутри вашей viewModel, чтобы получить ваши представления и установить их свойства:
// Using view binding in an Activity
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = ActivityMainBinding.inflate(layoutInflater)
binding.title.text = "Hello"
binding.subtext.text = "Concise, safe code"
binding.button.setOnClickListener { /* ... */ }
setContentView(binding.root)
}