这篇文章给大家介绍怎么在Android中使用View Binding方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
公司主营业务:网站建设、网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出平江免费做网站回馈大家。
使用
View Binding可按模块启用。要在某个模块中启用,在该模块的build.gradle中添加如下配置:
android { ... viewBinding { enabled = true } }
用法
当某个模块启用View Binding后,系统会为该模块中包含的每个 XML 布局文件各生成一个绑定类。每个绑定类均包含对根视图以及具有id 的所有视图的引用。绑定类的类名是xml的名称后面加“Binding”。
例如,假设某个布局文件名为 比如activity_main.xml:
那么生成的绑定类类名是ActivityMainBinding。这个类有两个成员变量tvName和btnOpen,还包含一个getRoot()方法,返回根视图,此例中返回LinearLayout。
要获取绑定类的实例,可以通过静态 inflate() 方法。
private lateinit var binding: ActivityMainBinding @Override fun onCreate(savedInstanceState: Bundle) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(inflater) setContentView(binding.root) }
现在,绑定类的实例可用于引用任何视图:
binding.tvName = "name" binding.btnOpen.setOnClickListener{ Log.d(TAG,"btnOpen click") }
区别
与findViewById的区别:空安全和类型安全,不存在因引用了一个错误的id而导致的空指针异常或者类型转换异常。
与databinding的区别:databinding仅处理使用
与Android Kotlin Extensions的区别:在使用上,后者简单粗暴,直接id进行访问,而View Binding需要创建绑定类的实例;后者有一些不友好的地方,比如相同的id存在于多个xml,容易导错包,如果包导错了,会有可能别的View用错id导致空指针,而View Binding显然不会有这种情况。
关于怎么在Android中使用View Binding方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。