首页 > 解决方案 > 未解决的参考:将数据绑定导入 MainActivity 时的数据绑定

问题描述

当我尝试将数据绑定导入 MainActivity 时,我收到“未解析的引用:数据绑定”错误。

主活动文件:

package <package-name>

import <package-name>.databinding.FragmentLoginBinding

class LoginFragment : Fragment() {

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {
        val binding = DataBindingUtil.inflate<FragmentLoginBinding>(inflater,
            R.layout.fragment_login,container,false)

        binding.register_btn.setOnClickListener { view : View ->
            view.findNavController().navigate(R.id.action_loginFragment_to_welcomeFragment)
        }

        binding.login_btn.setOnClickListener { view : View ->
            view.findNavController().navigate(R.id.action_loginFragment_to_welcomeFragment)
        }

        return binding.root
    }
}

其中包名是我的包名。包名被识别,只有数据绑定不被识别,所以它显示为红色。

我想正因为如此, FragmentLoginBinding 在

val binding = DataBindingUtil.inflate<FragmentLoginBinding>(inflater,
            R.layout.fragment_login,container,false)

也不认可。

项目 build.gradle 文件:

buildscript {
    ext{
        kotlin_version = '1.3.61'
        gradle_version = '3.6.0'
        data_binding_compiler_version = gradle_version
    }
    dependencies {
        classpath "com.android.tools.build:gradle:$gradle_version"
    }
}

应用程序 build.gradle 文件:

apply plugin: 'kotlin-kapt'

android {
    dataBinding {
        enabled = true
    }
}

dependencies {
    kapt "androidx.databinding:databinding-compiler:$data_binding_compiler_version"
}

我已经尝试关注此代码实验室https://codelabs.developers.google.com/codelabs/kotlin-android-training-add-navigation/#0并搜索解决方案,但无法修复它。

任何人都可以帮忙,好吗?

提前致谢。

标签: androidkotlinandroid-databinding

解决方案


看起来我在布局中缺少布局标签以支持数据绑定:

<layout xmlns:android="http://schemas.android.com/apk/res/android">

推荐阅读