如何将视图大小绑定到参数
How to bind View size to a parameter
我正在尝试将视图宽度绑定到这样的参数
android:layout_width='@{String.valueOf((int)item.parameter)+"dp"}'
可以是
android:layout_width='@{"156dp"}'
结果是
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> java.lang.RuntimeException: Found data binding errors.
****/ data binding error ****msg:Cannot find the setter for attribute 'android:layout_width' with parameter type java.lang.String on android.view.View.
那么如何正确绑定item参数到View宽度呢?
我相信在 Java 代码中,layout_width 是一个整型属性,其值以像素为单位。您在 XML 中提供的单位后缀用于在将值传递给 layout_width 之前将 xml 中的值从 dp 转换为像素。我认为您要绑定的 属性 应该是 integer 属性 ,它提供以像素为单位的值。如果 item.parameter 是你想要的以 dp 为单位的整数值,你可以为 item.bindingParameter:
做这样的事情
Configuration cfg = getResources().getConfiguration();
return item.parameter * cfg.densityDpi / DisplayMetrics.DENSITY_DEFAULT;
我正在尝试将视图宽度绑定到这样的参数
android:layout_width='@{String.valueOf((int)item.parameter)+"dp"}'
可以是
android:layout_width='@{"156dp"}'
结果是
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> java.lang.RuntimeException: Found data binding errors.
****/ data binding error ****msg:Cannot find the setter for attribute 'android:layout_width' with parameter type java.lang.String on android.view.View.
那么如何正确绑定item参数到View宽度呢?
我相信在 Java 代码中,layout_width 是一个整型属性,其值以像素为单位。您在 XML 中提供的单位后缀用于在将值传递给 layout_width 之前将 xml 中的值从 dp 转换为像素。我认为您要绑定的 属性 应该是 integer 属性 ,它提供以像素为单位的值。如果 item.parameter 是你想要的以 dp 为单位的整数值,你可以为 item.bindingParameter:
做这样的事情 Configuration cfg = getResources().getConfiguration();
return item.parameter * cfg.densityDpi / DisplayMetrics.DENSITY_DEFAULT;