我的工作DataBinding有BindingAdapter.这是我的自定义方法.
@BindingAdapter("{bind:fadevisible}")
public static void setFadeVisible(LinearLayout view, int visible) {
Log.e("Bindings", "setFadeVisible: ");
}
Run Code Online (Sandbox Code Playgroud)
在xml文件中,我称之为
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:fadevisible="@{1}"/>
Run Code Online (Sandbox Code Playgroud)
但它显示错误
错误:任务':app:compileDebugJavaWithJavac'的执行失败.java.lang.RuntimeException:发现数据绑定错误.****/数据绑定错误****消息:在android.widget.LinearLayout上找不到参数类型为int的属性'app:fadevisible'的setter.file:\ app\src\main\res-main\layout\activity_detail.xml loc:236:31 - 236:54****\data binding error****
我已经检查了这个和这个帖子,但不知怎的,它没有帮助我,因为你可以看到我int从xml 传递,并且BindingAdapter我也提到LinearLayout了int有价值.
即使我有另一种方法,只是参数不同,工作正常
@BindingAdapter({"bind:image_round"})
public static void loadRoundImage(ImageView imageView, String url)
Run Code Online (Sandbox Code Playgroud) 我想帮助解决问题.
首先,按照我的代码的详细信息:
build.gradle (Project: android)
buildscript {
repositories {
jcenter()
mavenCentral()
maven { url '/home/melti/java/repository' }
}
dependencies {
classpath "com.android.tools.build:gradle:1.3.0-beta4"
classpath "com.android.databinding:dataBinder:1.0-rc0"
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
maven { url '/home/melti/java/repository' }
}
}
Run Code Online (Sandbox Code Playgroud)
build.gradle(模块:app)
apply plugin: 'com.android.application'
apply plugin: 'com.android.databinding'
android {
compileSdkVersion 22
buildToolsVersion "23.0.0 rc2"
defaultConfig {
applicationId "br.com.soma"
minSdkVersion 16
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile …Run Code Online (Sandbox Code Playgroud)