Java教程

ViewBinding学习

本文主要是介绍ViewBinding学习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

使用kotlin-android-extensions发现被放弃了。要用ViewBinding,一些小问题记录一下。
先在model中的build.gradle中的android加上

    viewBinding {
        enabled = true
    }

或者是

    buildFeatures {
        viewBinding true
    }

但是这个要在buildiTypes前面,不然会有问题,而且这种方法不是官方提到的,是我搜到的,不知道有什么区别,现在懒得去理。
使用的时候最好要放在全局定义,然后在onCreate的时候初始化 ,Binding类的命名规则是将布局文件按驼峰方式重命名后,再加上Binding作为结尾

    private lateinit var binding: viewModelBinding

    override fun onCreate(savedInstanceState: Bundle) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        binding = viewModelBinding.inflate(layoutInflater)
        binding.name.setOnClickListener{
            //这里就可以正常使用了
        }
    }

但是在学习自定义控件,使用方法要变成

    private lateinit var binding: TitleBinding

    init {
        LayoutInflater.from(context).inflate(R.layout.title, this)
        val root = View.inflate(context, R.layout.title, this)
        binding = TitleBinding.bind(root)
        binding.titleBack.setOnClickListener {
            val activity=context as Activity
            activity.finish()
        }
        binding.titleEdit.setOnClickListener {
            Toast.makeText(context, "you clicked", Toast.LENGTH_SHORT).show()
        }
    }

暂时感觉到是因为自定义控件没有layoutInflater这东西,具体的后面遇上在深究

这篇关于ViewBinding学习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!