Weil Du int * float
Betrieb durchführen, 2 int
Wert und @dimen/button_min_height
gibt Ihnen float
Wert. android:layout_height
akzeptiert jedoch nur den Wert float
.
Sie können Ihre benutzerdefinierte Bindung Methode wie folgt erstellen:
public class Bindings {
@BindingAdapter("android:layout_height")
public static void setLayoutHeight(View view, float height) {
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
layoutParams.height = (int) height;
view.setLayoutParams(layoutParams);
}
}
und in XML-Code
android:layout_height="@{(float)2 * @dimen/activity_vertical_margin}"
convert 2 in float
so wird es nicht gibt Ihnen jeden Gussfehler.
Von oben Code erhalten Sie RunTimeException : You must supply a layout_height attribute.
erhalten, inorder, dass Fehler zu lösen, bieten default
Wert layout_height
android:layout_height="@{(float)2 * @dimen/activity_vertical_margin, default=wrap_content}"
this offizielle Dokumentation für default
Attribut Konzept finden, oder Sie können this answer auch
Ich verweise Ich denke, Sie können dies mit einem 'BindingAdapter' erreichen, der' layout_height' und einen 'factor' verwendet. Ich weiß nicht, ob es "out of the box" funktioniert ... – yennsarah