Проблема Android Studio с привязкой данных

#android #android-studio #data-binding

#Android #android-studio #привязка данных

Вопрос:

Иногда, когда в XML используется тег, привязка, созданная для родительского макета, не содержит ссылки на привязку включенного макета. Вместо этого включенный макет рассматривается как представление. Это влияет только на Android Studio (и, следовательно, на автозаполнение), но когда вы переходите к сборке проекта, он строится правильно со ссылкой на привязку для включенного макета. Похоже, это влияет только на некоторые файлы в проекте.

Например, если макет A содержит макет X и макет Y, он может иметь привязку к макету X, в то время как макет Y рассматривается как представление. В таком случае каждый файл в проекте не сможет увидеть привязку для Layout Y.

Похоже, что не существует шаблона, для которого файлы страдают от этого. Если я вручную удалю папку cache ~/User / Library / Caches / Google/ AndroidStudio4.1, проблема, как правило, возникает для другого набора файлов.

Активность:

 <?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@ id/coordinatorLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".feature.sidemenu.AboutActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <include
            android:id="@ id/toolbar"
            layout="@layout/appbar_toolbar" />

        <include
            android:id="@ id/about_layout"
            layout="@layout/fragment_about" />

    </LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

  

Панель инструментов:

 <?xml version="1.0" encoding="utf-8"?>
<layout
    xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView
        android:id="@ id/toolbarText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="@dimen/elements_spacing"
        android:text="Toolbar"
        android:textSize="@dimen/text_size_medium" />
</layout>
  

О нас:

 <?xml version="1.0" encoding="utf-8"?>
<layout
    xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView
        android:id="@ id/aboutText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="@dimen/elements_spacing"
        android:text="About"
        android:textSize="@dimen/text_size_medium" />
</layout>
  

и код kotlin:

         binding.aboutLayout.apply {
            aboutText.text = "" // I get error here (when I compile everything works)
        }
        binding.toolbar.apply {
            toolbarText.text = "" // But not here
        }
  

Код Kotlin