Android中使用BindingAdapter扩展xml的属性

92 阅读1分钟

在app模块的build.gradle中加入以下代码。

buildFeatures {
    dataBinding true
}

使用@BindingAdapter注解,也可以定义自定义属性,第一个参数必须为View或View的子类,表示这个属性在xml中可以指定在哪个控件上。

import android.view.View;

import androidx.databinding.BindingAdapter;

public class DataBindingComponent {

    @BindingAdapter("visibleGone")
    public static void visibleGone(View view, boolean gone) {
        view.setVisibility(gone?View.GONE:View.VISIBLE);
    }
}

比如在xml中这样使用,就可以做到和android:visibility="GONE"一样的效果了。

app:visibleGone="true"