2015-12-13 14 views
10

Sto usando dati Android vincolante che funziona alla grande:Android Data Binding Fallback valore/Default

<TextView 
android:text="@{ee.Name}" 
... 

Ma se faccio che il progettista Studio Android non mostra alcun testo. Senza testo non riesco a vedere il TextView. Il che è comprensibile perché non ho ancora associato i dati. Esiste qualcosa come un valore di riserva o un valore predefinito che può essere visualizzato finché non ci sono dati reali?

risposta

15

si dovrebbe leggere il Data Binding Guide postato sul sito Android Developers. L'ultima sezione del documento, Android Studio Support for Data Binding, spiega come è possibile utilizzare un segnaposto che può essere d'aiuto durante la fase di progettazione. E 'molto semplice:

<TextView android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@{user.firstName, default=Placeholder}"/> 

Se si desidera avere il testo con spazi come segnaposto che è possibile utilizzare virgolette singole ('), di nuovo le virgolette (`) o &quot;

android:text='@{user.firstName, default="Placeholder text"}' 
android:text="@{user.firstName, default=`Placeholder text`}" 
android:text="@{user.firstName, default=&quot;Placeholder text&quot;}" 
+1

Grazie, questo è esattamente quello che stavo cercando. Leggo davvero questo articolo che hai menzionato ma non l'ho visto. – ehmunnehm

+0

Una cosa che non riuscivo a capire è come usarlo sui colori. Qualcosa come: 'android: background = '@ {ee.BackColor, default =" color/colorPrimary "}'' -> 'Impossibile convertire" color/colorPrimary "in un drawable'. C'è un modo per farlo? – ehmunnehm

+3

Scusa, ho chiesto troppo presto. L'avevo capito. Se qualcuno ha bisogno di questo: 'Android: background = '@ {ee.BackColor, default = @ drawable/colorPrimaryD}'' '+ # FF627C1B' – ehmunnehm

0

Se volete vedere di default valore solo in fase di progettazione, si consideri l'utilizzo di Designtime Layout Attributes. Ciò è utile se ad esempio vuoi inserire valori errati (ad esempio valori troppo lunghi) e vedere come funziona il rendering, ma non vuoi vederlo in fase di runtime.

Naturalmente, è possibile utilizzare entrambe le tecniche - segnaposto di default (di cui parla @Bandreid) e gli attributi designtime. In questo caso vedrai gli attributi di designtime in fase di progettazione e i segnaposto in fase di runtime.

2

riquadro di anteprima valori display di default per l'associazione di dati espressioni.

android:text="@{user.firstName, default=PLACEHOLDER}" 

Questo può impostare il valore predefinito.

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:text="@{defaultString ?? @string/hello_world}"/> 
Problemi correlati