Невозможно ссылаться на другой идентификатор просмотра в привязке данных Android

Я только что закончил просмотр Advanced Data Binding — Google I/O 2016 и хотел бы применить следующие уменьшить повторение моего выражения, используемого в разных представлениях.

введите описание изображения здесь

Но я не могу заставить это работать в моем случае:

<ImageButton
                android:id="@+id/btn_list"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_gravity="start"
                android:background="@drawable/btn_s01_list"
                android:visibility="@{bean.shouldHideControls? View.GONE: View.VISIBLE}"/>

            <ToggleButton
                android:id="@+id/btn_radar"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:background="@drawable/btn_radar_selector"
                android:checked="false"
                android:gravity="end"
                android:text=""
                android:textOff=""
                android:textOn=""
                android:visibility="@{btn_list.visibility}"/>

и я получил

Ошибка: (426, 39) Идентификаторы должны иметь определенные пользователем типы из XML-файла. btn_list отсутствует

Изменить:

Я упустил важный момент в том же выступлении... Идентификаторы просмотра являются верблюжьими.

введите описание изображения здесь


person chubao    schedule 09.06.2016    source источник


Ответы (1)


Процесс привязки преобразует ваши идентификаторы в свойства в классе привязки, а сгенерированные имена подвергаются верблюжьей касификации.

Возможно, вам придется изменить следующую строку:

android:visibility="@{btn_list.visibility}"/>

К этому:

android:visibility="@{btnList.visibility}"/>
person earthw0rmjim    schedule 09.06.2016
comment
вау, это НЕ было чем-то, я бы легко догадался. Благодарю вас! - person Peter; 07.11.2019