2016-06-09 7 views
11

Ho appena finito di guardare Advanced Data Binding - Google I/O 2016 e vorrei applicare quanto segue per ridurre la ripetizione della mia espressione utilizzata in diverse viste.Impossibile fare riferimento ad altro ID vista nell'associazione dati Android

enter image description here

Ma non riesco a farlo funzionare nel mio caso:

<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}"/> 

e ho avuto

Error:(426, 39) Identifiers must have user defined types from the XML file. btn_list is missing it

Edit:

ho perso un punto importante in lo stesso discorso ... The View IDs sono cammificati.

enter image description here

risposta

16

il processo di associazione converte gli ID per le proprietà della classe vincolante, ed i nomi generati sono di cammello-casified.

Potrebbe essere necessario modificare la riga seguente:

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

A tal:

android:visibility="@{btnList.visibility}"/> 
Problemi correlati