Android Datenbindung layout_width und layout_height

9

Ich muss in der Lage sein, die height -Eigenschaft von EditText dynamisch festzulegen. Ich verwende Datenbindung für andere Eigenschaften in meiner App, daher würde ich gerne Datenbindung verwenden können, um die Höhe meiner Elemente zu steuern. Hier ist eine abgespeckte Version meines xml:

%Vor%

Und hier ist eine abgespeckte Version meines View Model:

%Vor%

Die Dimensionen befinden sich in der Datei dimens.xml. Und ich modifiziere die Eigenschaften im View-Modell. Aber wenn ich die App starte, erhalte ich unmittelbar nach dem Start den folgenden Fehler (der Bindungsadapter feuert nicht auf Debug). Ich habe mehrere andere Elemente auf dem Bildschirm, aber diese besondere ist die, die ich brauche, um die Höhe zu ändern, wenn eine bestimmte Aktion auftritt:

%Vor%

Es gibt ein paar Beiträge zu SO bezüglich dieses Problems, aber keine definitiven Antworten oder der Ansatz hat nicht funktioniert. Sicher ist dies eine Implementierung, die üblich ist. Vielen Dank im Voraus für die Hilfe.

    
John Murphy 09.02.2016, 14:54
quelle

3 Antworten

20

Wenn Datenbindung verwendet wird, entfernen wir Werte aus dem XML. Sie können einen Standardwert hinzufügen, der beim Entfernen verwendet wird, um das Problem zu vermeiden.

siehe: Ссылка (unten auf der Seite).

%Vor%     
yigit 11.02.2016, 06:25
quelle
8

In Java

%Vor%

Und in Ihrem XML

%Vor%

Importieren Sie die App wie folgt

%Vor%     
Phan Van Linh 16.02.2017 04:29
quelle
1

Laut der Diskussion zum Android Issue Tracker ist es nicht möglich, Layouthöhe oder -breite mit Datenbindung festzulegen, ohne benutzerdefinierte Bindungsadapter zu erstellen:

Ссылка

Der Bindungsadapter, der für die Einstellung der Ansichtshöhe benötigt wird, sieht folgendermaßen aus:

%Vor%     
KubaK 31.01.2017 09:11
quelle

Tags und Links