Android使用ViewBinding的详细步骤(Kotlin简易版)
ViewBinding 是什么
2020年的3月份 巨佬 JakeWharton 开源的 butterknife 被官宣 停止维护,在github 上 说明
Attention: This tool is now deprecated. Please switch to view binding. Existing versions will continue to work, obviously, but only critical bug fixes for integration with AGP will be considered. Feature development and general bug fixes have stopped.
翻译过来就是,不维护了,推荐你使用 ViewBinding ,那么 ViewBinding 是什么呢
在官网中,这么介绍
通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 XML 布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。在大多数情况下,视图绑定会替代 findViewById。
简而言之 就是用来查找view
ViewBinding 有什么作用
就想刚刚说的 ,他就是为了替换 findViewById。 的。那么 原来的 findViewById。 有什么问题么?干嘛就要替换了他?
总结了以下几个原因:
- 过于冗余
findViewById 对应所有的View 都需要书写以下 findViewById(R.id.xxx) 的方法
- 不安全
所谓的不安全就是分为两个 首先是空类型的不安全,findViewById 又可能返回为null,导致程序异常
第二: 强转的不安全,findViewById。 将 对应的id 需要强转成对应的View 例如
TextView tv = findViewById(R.id.textview);
一旦我的类型给错了,就会出现异常,比如将textview 错强转成 ImageView
正文开始
最近这段时间在学习Kotlin,突然发现谷歌已经把kotlin-android-extensions插件废弃,目前推荐使用ViewBinding来进行替代。
ViewBinding的目的:避免编写findViewById
使用ViewBinding前的注意事项:
1、确保你的Android Studio是3.6或更高的版本
2、在build.gradle中加入以下配置:buildFeatures { viewBinding true }
使用ViewBinding的步骤:
1、首先要调用activity_main.xml布局文件对应的Binding类,也就是ActivityMainBinding的inflate()函数去加载该布局,inflate()函数接收一个LayoutInflater参数,在Activity中是可以直接获取到的
2、接下来调用Binding类的getRoot()函数可以得到activity_main.xml中根元素的实例
3、把根元素的实例传入到setContentView()函数当中,这样Activity就可以成功显示activity_main.xml这个布局的内容了。
话不多说,接下来是代码部分:
1、在build.gradle中加入:buildFeatures { viewBinding true }


2、将要使用ViewBinding的Activity打开,将代码改成如下的样子:

这里要注意的是,如果在别的Activity中要使用binding的话(如:我现在的kt文件叫做LoginActivity.kt,那么代码如下:
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityLoginBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityLoginBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.webView
}
}
3、此时就可以通过binding.控件id名进行调用

到此这篇关于Android使用ViewBinding(Kotlin简易版)的文章就介绍到这了,更多相关Android使用ViewBinding内容请搜索华域联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持华域联盟!
相关文章
-
Android中TabLayout结合ViewPager实现页面切换
这篇文章主要为大家详细介绍了Android中TabLayout结合ViewPager实现页面切换效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2016-12-12
-
Android编程开发之seekBar采用handler消息处理操作的方法
这篇文章主要介绍了Android编程开发之seekBar采用handler消息处理操作的方法,结合实例分析了Android实现进度条功能的相关技巧,需要的朋友可以参考下2015-12-12
-
Android DrawableTextView图片文字居中显示实例
在我们开发中,TextView设置Android:drawableLeft一定使用的非常多,但Drawable和Text同时居中显示可能不好控制,小编想到通过自定义TextView实现,具体详情大家参考下本文2017-03-03
-
如何设置Android studio 3.0显示光标返回上一次浏览位置的箭头图
这篇文章主要介绍了如何设置Android studio 3.0显示光标返回上一次浏览位置的箭头图标 很多朋友反映刚升级了Android studio 3.0,发现光标返回上一次浏览位置的箭头图标没有了,下文给大家介绍的非常详细,需要的朋友可以参考下2017-11-11
-
利用Kotlin实现破解Android版的微信小游戏–跳一跳
这篇文章主要给大家介绍了关于利用Kotlin实现破解Android版微信小游戏–跳一跳的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。2017-12-12
-
Android使用PowerImageView实现播放强大的ImageView动画效果
今天我们就来编写一个PowerImageView控件,让它既能支持ImageView控件原生的所有功能,同时还可以播放GIF图片2018-05-05

最新评论