Datenbindung mit Themenattributen

Ich probiere das neue Android ausDatenbindungsbibliothek und ich wollten die Hintergrundfarbe von ToolBar mithilfe einer Bindung festlegen. Standardmäßig sollte die Farbe colorPrimary (aus dem Theme) sein.

Bevor ich DataBinding verwendet habe, sah meine ToolBar aus wie

 <android.support.v7.widget.Toolbar
        android:id="@+id/mainToolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        />

Nach dem Hinzufügen einer Bindung wollte ich den Hintergrund auf colorPrimary setzen, wenn keine Farbe gebunden ist - ich verwende dafür einen ternären Operator (wie im Handbuch erwähnt) -, aber dies führt zu einem Fehler, da die Themenattribute auch ein "? " Betreiber vor ihren Namen. Der Compiler glaubt, ich beginne eine neue ternäre Operation.

<data>
    <variable name="toolBarBackgroundColor" type="int"/>
</data>
...
<android.support.v7.widget.Toolbar
        android:id="@+id/mainToolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@{toolBarBackgroundColor!=0? toolBarBackgroundColor: ?attr/colorPrimary }"
        />

Gibt es eine Möglichkeit, innerhalb einer Bindungsoperation auf Themenattribute zuzugreifen? Vielen Dank

Bearbeite

Ich weiß, dass ich das colorPrimary-Attribut programmgesteuert abrufen und über Java-Code binden kann. Aber ich frage mich nur, ob es eine XML-basierte Lösung dafür gibt oder nicht.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage