Gradle:viewBinding的参数太多

11dmarpk  于 2023-10-19  发布在  其他
关注(0)|答案(2)|浏览(134)

我在build.gradle文件中添加了以下内容:

android {

...

buildFeatures {
    viewBinding = true
}

...

}
}

我有一个有很多很多视图的活动(客户希望如此),这引发了以下错误:

这个问题有解决方案吗?

gjmwrych

gjmwrych1#

看来,在一个布局中,使用视图绑定的视图数量是有限制的。在我的情况下,我有一个非常大的布局与许多意见。若要忽略特定布局的视图绑定,请添加

tools:viewBindingIgnore="true"

到布局的根视图。只需使用viewbinding以外的其他方法来访问大布局中的视图。

esyap4oy

esyap4oy2#

我通过创建另一个布局解决了这个问题。假设你有500个视图,包括你的activity.xml中的TextView等等。
您可以遵循的步骤是创建新的布局。示例content_layout_a.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/ll"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:orientation="vertical"

    <!-- Some of your views here -->
</LinearLayout>

在这个xml中,你放了一些视图,比如100个视图。如果你仍然有超过的意见,也许创建另一个内容布局。
接下来,在activity.xml中。您只需要使用include来访问内容。确保包含ID,以便可以使用绑定来调用它。

binding.includeItemA.textViewA

范例:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/ll"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:orientation="vertical"

    <!-- Some of your views here -->

    <!-- Here you include your another content for other views -->
    <include
        android:id="@+id/include_item_a"
        layout="@layout/content_layout_a"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintLeft_toRightOf="@+id/view_line"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tv_title" />
</LinearLayout>

然后,尝试Make Module。希望这个能帮上忙,

相关问题