JoJ*_*oJo 47 xml android android-layout
我如何避免这种硬编码数学...
<resources>
<dimen name="uno">10dip</dimen>
<dimen name="dos">6dip</dimen>
<dimen name="uno_plus_dos">16dip</dimen>
</resources>
<Button
android:layout_marginTop="@dimen/uno_plus_dos" />
Run Code Online (Sandbox Code Playgroud)
......把它转变成这样的东西?
<Button
android:layout_marginTop="@dimin/uno + @dimen/dos" />
Run Code Online (Sandbox Code Playgroud)
使用数据绑定:
android:layout_marginTop="@{@dimen/uno + @dimen/dos}"
Run Code Online (Sandbox Code Playgroud)
sdk不提供IFAIK边距适配器.您需要自己定义它:
@BindingAdapter("android:layout_marginTop")
public static void setBottomMargin(View view, int bottomMargin) {
ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
layoutParams.setMargins(layoutParams.leftMargin, layoutParams.topMargin,
layoutParams.rightMargin, bottomMargin);
view.setLayoutParams(layoutParams);
}
Run Code Online (Sandbox Code Playgroud)
确保为您的项目启用了数据绑定:
dataBinding {
enabled = true
}
Run Code Online (Sandbox Code Playgroud)
在你的build.gradle中.
该数据绑定的文档是值得一读.
| 归档时间: |
|
| 查看次数: |
12101 次 |
| 最近记录: |