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)
}
虽然布局编辑器可以正确地呈现应用程序的对齐方式,但一旦将其启动到模拟器上,使用LinearLayout的layout_gravity设置的center_vertical对齐方式等布局配置将被忽略。
ViewBinding的实现有什么问题或遗漏吗?