android - 调用没有任何值的绑定适配器
问题描述
只是想在 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();
}
});
}
让我知道有没有其他方法可以实现这一点
解决方案
你可以这样做,
/**
* Use example:
* app:showDatePicker="@{null}"
*/
@BindingAdapter("showDatePicker")
fun TextView.showDatePicker(dummy: Any?) {
// ...
}
推荐阅读
- flutter - 将按钮颜色更改为弯曲导航栏中选项卡上的主要颜色
- arrays - 如何组合字典中的重复键并快速总结值?
- android - 用于测试 SafetyNet 验证应用 API 的潜在有害应用程序示例
- javascript - 获取数据时单选按钮的Reactjs问题
- ruby-on-rails - 可以在加载 Rails 之前进行测试吗?
- android - 带有手势导航的错误小吃店位置
- image - 如何在python中保存没有框架的图像?
- node.js - 来自 lambda 的第一个请求未插入 DynamoDB 项目需要发出 4-5 个请求
- asp.net - 购物车 ASP.NET MVC 的数量
- html - 响应 DIV 大小的字体大小