标签:onCreate layout ViewBinding binding 学习 context activity setOnClickListener
使用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这东西,具体的后面遇上在深究
标签:onCreate,layout,ViewBinding,binding,学习,context,activity,setOnClickListener 来源: https://www.cnblogs.com/wzl19981116/p/16131840.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。