Android ViewBinding无法呈现LinearLayout配置

Android ViewBinding无法呈现LinearLayout配置,android,android-layout,android-linearlayout,android-viewbinding,Android,Android Layout,Android Linearlayout,Android Viewbinding,ViewBinding实现无法呈现我的代码中使用的LinearLayout的布局配置,而相同的布局可用于findViewById()的旧技术 我已将gradle设置为使用ViewBinding android { ... buildFeatures { viewBinding = true } 下面是使用线性布局的活动 活动\u main.xml <LinearLayout xmlns:android="http://schemas.android.com

ViewBinding实现无法呈现我的代码中使用的
LinearLayout
的布局配置,而相同的布局可用于
findViewById()的旧技术

我已将gradle设置为使用ViewBinding

android {
    ...
    buildFeatures {
        viewBinding = true
}
下面是使用
线性布局的活动

活动\u 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>
布局编辑器呈现应用程序的正确对齐方式时,一旦启动到模拟器上,使用
LinearLayout
Layout\u gravity
设置的布局配置(如
center\u vertical
对齐)将被忽略


ViewBinding的实现方式是否有错误或缺失?

有一种可能是您的
线性布局没有任何
id

当您执行
binding.root时,它会保留一个根视图的引用,在您的案例中它是线性布局的

根据官方文件:

如果为模块启用了视图绑定,则会生成绑定类 对于模块包含的每个XML布局文件。每个绑定类 包含对根视图和具有ID的所有视图的引用

将id指定给LinearLayout
android:id=“rootView
,重建项目并尝试运行。 我希望它能解决你的问题


感谢并祝您编码愉快。

在您的
activity\u main.xml中
id
交给您的
LinearLayout
也有同样的问题,通过将
android:gravity=“center\u vertical”
添加到
activity\u main.xml中的
LinearLayout
中解决了这个问题

<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:gravity="center_vertical"
    android:layout_gravity="center_vertical"
    android:orientation="vertical"
    android:id="@+id/root_view"
    tools:context=".MainActivity">

</LinearLayout>


我正在使用Android Studio 4.0。您提供的配置适用于Android Studio 3.6。这表明build.gradle配置在最新版本中已更改。哎呀,我的错。感谢您让我知道。刚刚尝试过,但仍然没有成功。要添加更多详细信息,我可以使用b绑定类实例,如
binding.myButton.setOnClickListener{…}
。唯一存在的问题是ViewGroupI的布局属性的呈现。我更新了我的答案。我的recyclerview也面临同样的问题。你解决了这个问题吗?
<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:gravity="center_vertical"
    android:layout_gravity="center_vertical"
    android:orientation="vertical"
    android:id="@+id/root_view"
    tools:context=".MainActivity">

</LinearLayout>