gpt4 book ai didi

android - 布局中的算术运算 - Android Data Binding

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:34:03 26 4
gpt4 key购买 nike

我正在尝试在数据绑定(bind)中使用算术运算:

<Space
android:layout_width="match_parent"
android:layout_height="@{2 * @dimen/button_min_height}" />

不幸的是我得到:

Error:(47, 47) must be able to find a common parent for int and float 

有什么想法吗?

最佳答案

因为你正在执行int * float操作,2是int值,@dimen/button_min_height会给你float 值。但是 android:layout_height 将只接受 float 值。

您可以像这样创建自定义绑定(bind)方法:

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);
}
}

在你的 xml 代码中

android:layout_height="@{(float)2 * @dimen/activity_vertical_margin}"

将 2 转换为 float,这样就不会出现任何转换错误。

从上面的代码你会得到 RunTimeException : 你必须提供
layout_height 属性。
,为了解决该错误,为 layout_height

提供 default
android:layout_height="@{(float)2 * @dimen/activity_vertical_margin, default=wrap_content}"

引用this default 属性概念的官方文档,或者您可以引用this answer还有

关于android - 布局中的算术运算 - Android Data Binding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38480217/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com