android 数据绑定的一个属性中可以有两个参数吗?

Lon*_*ger 1 android android-databinding

我已阅读此博客中的自定义设置器。https://medium.com/google-developers/android-data-binding-custom-setters-55a25a7aea47#.7ylt58pzz

我想知道我是否可以使用以下这样的东西

在 xml 中

android:imageUrl="@{param1,param2}"
Run Code Online (Sandbox Code Playgroud)

在java类中

@BindingAdapter(value={"imageUrl"}, requireAll=false)
public static void setImageUrl(ImageView imageView, String url,
        Drawable placeHolder) {
    if (url == null) {
        imageView.setImageDrawable(placeholder);
    } else {
        MyImageLoader.loadInto(imageView, url, placeholder);
    }
}
Run Code Online (Sandbox Code Playgroud)

视图中的一个属性和两个参数。由于我在android数据绑定中看到了lambdas表达式(实际上它并没有真正用JDK 8编译)https://developer.android.com/topic/libraries/data-binding/index.html#listener_binding,任务变量可以添加在处理程序事件中。

android:onClick="@{(theView) -> presenter.onSaveClick(theView, task)}"
Run Code Online (Sandbox Code Playgroud)

自定义绑定方法中是否可以有两个(或更多)参数?

qin*_*iao 5

它也在工作。

@BindingAdapter({"imageUrl", "error"})
public static void imageLoader(ImageView imageView, String url, Drawable error) {
    Picasso.with(imageView.getContext()).load(url).into(imageView);
}

<ImageView
    android:layout_margin="@dimen/activity_horizontal_margin"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:scaleType="centerInside"
    android:clickable="false"
    app:imageUrl='@{imgUrl ?? "http://ww1.sinaimg.cn/large/7a8aed7bjw1f2zwrqkmwoj20f00lg0v7.jpg"}'
    app:error="@{@drawable/ic_image_load_error}"
    />
Run Code Online (Sandbox Code Playgroud)