首页 > 解决方案 > 为什么 ViewBinding 无法识别工具栏?

问题描述

最近我发现 android kotlin 扩展已被弃用。现在我正在使用viewBinding.

带有 android Kotlin 扩展。我对下面的代码没有问题

class DetailsActivity : AppCompatActivity() {
   override fun onCreate(savedInstanceState:android.os.Bundle?) {  
    super.onCreate(savedInstanceState) 
    setContentView(R.layout.activity_details)  
    setupToolbar()
}  

private fun setupToolbar() { 
   setSupportActionBar(toolbar)  
  }
}

但是ViewBinding如下所示,我得到unresolved reference error: toolbar

class DetailsActivity : AppCompatActivity() {
    private lateinit var binding:ActivityDetailsBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding= ActivityDetailsBinding.inflate(layoutInflater)
        val view=binding.root
        setContentView(view)
        setupToolbar()
    }

    private fun setupToolbar() {
        setSupportActionBar(toolbar)
    }
}

这是布局xml。 在此处输入图像描述

标签: androidandroid-studiokotlin

解决方案


改为引用toolbarby viewbinding,尝试以下操作

class DetailsActivity : AppCompatActivity() {
    private lateinit var binding: ActivityDetailsBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding= ActivityDetailsBinding.inflate(layoutInflater)
        val view=binding.root
        setContentView(view)
        setupToolbar()
    }

    private fun setupToolbar() {
        setSupportActionBar(binding.toolbar)
    }
}

推荐阅读