gpt4 book ai didi

android - 如何选择要使用的绑定(bind)转换或绑定(bind)适配器?

转载 作者:太空狗 更新时间:2023-10-29 13:57:29 24 4
gpt4 key购买 nike

这涉及数据绑定(bind)指南 (https://developer.android.com/topic/libraries/data-binding/index.html) 中的两个功能:BindingAdapters 和 BindingConverions。以下示例来自指南:


@BindingAdapter("android:paddingLeft")
public static void setPaddingLeft(View view, int oldPadding, int newPadding) {
if (oldPadding != newPadding) {
view.setPadding(newPadding,
view.getPaddingTop(),
view.getPaddingRight(),
view.getPaddingBottom());
}
}

@BindingConversion
public static ColorDrawable convertColorToDrawable(int color) {
return new ColorDrawable(color);
}

我的问题是:

如果我有两个具有相同方法签名的不同 BindingAdapter,我如何指示给定 View 使用哪一个? (不使用自定义字段名称变体,例如 myPaddingLeftOne、myPaddingLeftTwo 等)

同样,如果我有两个具有相同输入和返回类型的 BindingConversions,我如何指示在给定情况下使用哪个?

最佳答案

简短的回答是,你不能。如果您有两个具有相同目标类型和相同值类型的绑定(bind)适配器,则将使用最后一个编译的适配器。这样您就可以覆盖库中的实现。

如果有帮助,请使用不同的应用程序命名空间属性来区分两者,或者使用一种方法在您的表达式中进行转换。

BindingConversions 也是如此。

如果您有时需要转换而不是其他,请在表达式中使用自定义属性和 BindingAdapter 或转换函数。绑定(bind)转换功能强大,但您应该限制何时使用它们,因为只要转换可以使表达式起作用,它们就会被激活。数据绑定(bind)库中使用的一个示例是将整数颜色转换为 ColorDrawable,以便在 Drawable 是参数时使用。

关于android - 如何选择要使用的绑定(bind)转换或绑定(bind)适配器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38276951/

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