【问题标题】:Databinding not working with constraint layout Groups数据绑定不适用于约束布局组
【发布时间】:2020-01-02 07:27:56
【问题描述】:

我在我的布局 fragment_hurdle_otp.xml 文件中使用了组视图。

.
.
.

<android.support.constraint.Group
            android:id="@+id/group_navigate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:constraint_referenced_ids="iv_navigate_option,tv_navigate_option" />


        <ImageView
            android:id="@+id/iv_navigate_option"
            android:layout_width="@dimen/space_16"
            android:layout_height="@dimen/space_16"
            android:layout_marginStart="@dimen/default_space_24"
            app:layout_constraintBottom_toBottomOf="@+id/tv_navigate_option"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="@+id/tv_navigate_option"
            app:srcCompat="@drawable/outline_lock_vector" />

        <TextView
            android:id="@+id/tv_navigate_option"
            style="@style/LoginButtonLight"
            android:layout_width="wrap_content"
            android:layout_height="@dimen/wh_40"
            android:layout_marginTop="@dimen/default_space"
            android:layout_marginBottom="@dimen/default_margin_8"
            android:padding="@dimen/default_space_small"
            android:text="@{vm.tvNavigateOption}"
            app:layout_constraintBottom_toTopOf="@+id/tv_verify"
            app:layout_constraintStart_toEndOf="@+id/iv_navigate_option"
            android:background="@drawable/white_selectable_item_background"
            android:onClick="@{()->vm.onNavigate()}"
            tools:text="@string/login_with_password" />
.
.
.


但是在构建时,为此布局生成绑定文件失败并引发编译错误。

类元素:(java.lang.String,java.lang.String)void init /Users/.../../..application/build/generated/data_binding_base_class_source_out/developersProductionDebug/dataBindingGenBaseClassesDevelopersProductionDebug/out/com/phone/app/databinding/FragmentHurdleOtpBinding.java:27:错误:找不到符号 public final Group groupNavigate;

如果我删除组视图,一切正常。

【问题讨论】:

  • 一个简单的 clean + build 应该可以解决这个问题。如果不是,请发布错误指向的代码。
  • 你还在使用support库还是迁移到AndroidX?
  • 迁移到androidX
  • 支持库已被作为 Jetpack 一部分的 AndroidX 取代。您还应该考虑将现有项目迁移到 AndroidX。更多信息:developer.android.com/jetpack/androidx/migrate
  • 然后用androidx.constraintlayout.widget.Group代替android.support.constraint.Group

标签: android data-binding android-constraintlayout android-databinding


【解决方案1】:

您已经将项目迁移到AndroidX。所以,你必须使用AndroidX 库而不是Support。在您的项目中,不要将Support 库与AndroidX 混合使用。

使用

androidx.constraintlayout.widget.Group

而不是

android.support.constraint.Group

还将AndroidX 库ConstraintLayout 包含在您的模块级别build.gradle 中

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    • 1970-01-01
    • 2019-01-05
    • 2021-04-13
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多