只需要一种方法来调用绑定适配器,而xml中没有任何值。
示例:
XML
<android.support.v7.widget.AppCompatSpinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="@dimen/spinner_height"
android:background="@drawable/background"
app:performClickOnFocus="@{true}"/>
BindingAdater代码
@BindingAdapter({"app:performClickOnFocus"})
public static void performClickOnSpinner(final AppCompatSpinner spinner, boolean arg) {
spinner.setOnFocusChangeListener((v, hasFocus) -> {
if (hasFocus) {
spinner.performClick();
}
});
}
期望的代码应该没有布尔值。
像下面的
@BindingAdapter({"app:performClickOnFocus"})
public static void performClickOnSpinner(final AppCompatSpinner spinner) {
spinner.setOnFocusChangeListener((v, hasFocus) -> {
if (hasFocus) {
spinner.performClick();
}
});
}
让我知道还有其他方法可以实现这一目标
答案 0 :(得分:1)
您可以这样做
/**
* Use example:
* app:showDatePicker="@{null}"
*/
@BindingAdapter("showDatePicker")
fun TextView.showDatePicker(dummy: Any?) {
// ...
}
答案 1 :(得分:0)
没有任何参数的BindingAdapter
就不能使用。您可以做的就是传递null。