数据绑定不起作用 Android Studio 4.1
Posted
技术标签:
【中文标题】数据绑定不起作用 Android Studio 4.1【英文标题】:DataBinding is not working Android Studio 4.1 【发布时间】:2021-02-22 20:48:54 【问题描述】:我正在使用 android Studio 4.1 和 Gradle gradle-6.5-all 无法使用 DataBinding。
SDK 版本
compileSdkVersion 30
buildToolsVersion "30.0.2"
minSdkVersion 16
targetSdkVersion 30
下面是我的 XML、BindingAdapter 和 build.gradle 代码。
plugins
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id "androidx.navigation.safeargs.kotlin"
android
....
buildFeatures
viewBinding true
dataBinding true
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_
android:layout_>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/stepText"
android:layout_
android:layout_
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:stepBackground="@1"
android:text="1"
android:textAllCaps="true"
android:textColor="@android:color/black"
android:textSize="20sp"
android:padding="20dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
@BindingAdapter("stepBackground")
fun stepBackground(view: View, type: Int?)
Timber.e("stepBackground $view.background")
type?.let
when(it)
1 -> view.setBackgroundResource(R.drawable.white_shape_circle)
2 -> view.setBackgroundResource(R.drawable.red_shape_circle)
else -> view.setBackgroundResource(R.drawable.grey_shape_circle)
在上面的代码中,我尝试根据步数应用动态背景。但这里没有应用背景。我还设置了断点来检查 BindingAdapter 方法是否正在调用。但是 Debugger 不会去 BindingAdapter 方法。
我可以知道这里缺少什么吗?
【问题讨论】:
尝试调用stepBackground="@1"
而不是app:stepBackground="@1"
您是否确认setBackgroundResource
是在您的情况下调用的正确方法?其他选项是 setBackground
setBackgroundDrawable
..
【参考方案1】:
在应用级构建 Gradle 中添加以下行,然后清理项目->重建项目。 它对我有用
dataBinding
enabled = true
kapt
generateStubs = true
【讨论】:
以上是关于数据绑定不起作用 Android Studio 4.1的主要内容,如果未能解决你的问题,请参考以下文章
更新到 Android Studio 4.2 后,查找和替换都不起作用
在 Mac 中更新到 Android Studio 4 后快捷方式不起作用?