1、 在app主工程目录下,build.gradle下-->android{}下添加
viewBinding{
enabled =true
}
具体位置,参见下图,
每次在layout资源目录下创建布局,默认会自动生成对应的ViewBinding类,例如:activity_main.xml
Activity中使用:
ViewBinding bind = ActivityMainBinding.inflate(layoutInflater)
setContentView(bind.root)
在fragment中使用:创建fragment_main_xml
override fun onCreateView(inflater:LayoutInflater, container:ViewGroup?, savedInstanceState:Bundle?):View? {
ViewBinding bind = FragmentMainBinding.inflate(inflater, container,false)
return bind.root
}
在adapter中使用:
val bind =ItemVideoWallpaperAdapterBinding.inflate(inflater, parent,false)
MyViewHolder(bind.root)
在dialog中使用
val bind =DialogAppAutoStartBinding.inflate(LayoutInflater.from(context), null, false)
init {
setContentView(bind.root)
setCanceledOnTouchOutside(true)
bind.tvDialogConfirm.setOnClickListener{
dismiss()
onRun?.run()
}
}
如果禁止布局生成viewbinding类,添加如下代码即可
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:viewBindingIgnore="true">
.........
</FrameLayout>