web-dev-qa-db-ja.com

Androidデータバインディングで他のビューIDを参照できません

私は Advanced Data Binding-Google I/O 2016 の視聴を終了しました。さまざまなビューで使用される式の繰り返しを減らすために以下を適用したいと思います。

enter image description here

しかし、私はそれを私の場合に機能させることができません:

<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にありません

編集:

同じ話で重要なポイントを逃しました...ビューIDはラクダに分類されます。

enter image description here

23
David Cheung

バインディングプロセスは、IDをバインディングクラスのプロパティに変換し、生成された名前はキャメル大文字になります。

次の行を変更する必要がある場合があります。

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

これに:

Android:visibility="@{btnList.visibility}"/>
38
earthw0rmjim