ViewBinding 实现无法呈现LinearLayout
在我的代码中使用的布局配置,而相同的布局适用于旧的技术findViewById()
我已经设置了 gradle 以使用 ViewBinding
android {
...
buildFeatures {
viewBinding = true
}
以下是使用LinearLayout
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical"
tools:context=".MainActivity">
<ImageView
... />
<Button
... />
</LinearLayout>
对应的 Kotlin 类包括绑定实例及其根视图传递给setContentView()
MainActivity.kt
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
...
setContentView(binding.root)
}
虽然布局编辑器呈现应用程序的正确对齐方式,但一旦将其启动到模拟器上,布局配置(例如使用ofcenter_vertical
设置的对齐方式)将被忽略。layout_gravity
LinearLayout
ViewBinding 的实现方式是否不正确或缺失?