Android Studio3.6新特性之视图绑定ViewBinding使用指南

 更新时间:2020年03月14日 19:24:10   作者:Lwjobs  
这篇文章主要介绍了Android Studio3.6新特性之视图绑定ViewBinding使用指南,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

View Binding是一项功能,使您可以更轻松地编写与视图交互的代码。在模块中启用视图绑定后,它将为该模块中存在的每个XML布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有ID的所有视图的直接引用。

正文

Android Studio 3.6 Canary 11 及更高版本中推出了ViewBinding功能,ViewBinding将逐步替换掉findViewById,还等什么,抓紧时间学习吧!
谷歌官方文档的ViewBinding Demo是用Kotlin语言写的,看起来比较生疏,花了点时间,我在Java上实现了类似的代码,还是看Java比较亲切!

下面简单介绍下如何使用ViewBinding:

修改build.gradle

将 viewBinding 元素添加到其 build.gradle 文件中,添加完后需要重新sync

// Android Studio 3.6.0
android {
 ...
 viewBinding {
  enabled = true
 }
 }

在 Android Studio 4.0 中,viewBinding 将被变成属性整合到了buildFeatures 选项中,配置要改成:

// Android Studio 4.0
android {
 buildFeatures {
 viewBinding = true
 }
}

修改java代码

如果你的布局文件是activity_main.xml,则会生成一个ActivityMainBinding的类,如果你的布局文件是result_profile.xml,则会生成一个ResultProfileBinding的类,以此类推。
下面以activity_main.xml及其对应的MainActivity.java为例说明:

假设activity_main.xml放置了三个控件:TextView(Id为text)、Button(Id为button)、ImageView(没有设置Id),其中ImageView因为没有设置Id,因此绑定类中不存在对它的引用,所以在代码中无法被引用。

MainActivity.java的部分代码如下:

@Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
 LayoutInflater layoutInflater = LayoutInflater.from(this);
 ActivityMainBinding binding = ActivityMainBinding.inflate(layoutInflater);
 setContentView(binding.getRoot());

 binding.text.setText("文字已变化");
 binding.button.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
  Toast.makeText(getApplicationContext(), "Button被点击", Toast.LENGTH_SHORT).show();
  }
 });
 }

注意事项

注意:原先的setContentView(R.layout.activity_main)需要注释掉,否则会重复设置ContentView。
布局的根视图(activity_main.xml)会自动生成一个名为 rootView 的成员变量。在 Activity 的 onCreate()方法中,要将 rootView传入 setContentView()方法,从而让 Activity 可以使用绑定对象中的布局,rootView是私有变量,需要使用getRoot()方法拿到。

工程代码

完整的工程欢迎到码云或Github上下载(ViewBindingTest目录):
https://gitee.com/lwjobs/AndroidStudy
https://github.com/lwjobs/AndroidStudy

视图绑定ViewBinding的详细说明请参考:

使用视图绑定替代 findViewById

总结

到此这篇关于Android Studio3.6新特性之视图绑定ViewBinding使用指南的文章就介绍到这了,更多相关android studio3.6 视图绑定ViewBinding内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android编程实现Toast只显示最后一条的方法

    Android编程实现Toast只显示最后一条的方法

    这篇文章主要介绍了Android编程实现Toast只显示最后一条的方法,结合实例形式总结了Toast只显示最后一条的原理与具体实现技巧,需要的朋友可以参考下
    2017-08-08
  • Android自定义图文跑马灯效果

    Android自定义图文跑马灯效果

    这篇文章主要为大家详细介绍了Android自定义图文跑马灯效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • Android基于TextView属性android:ellipsize实现跑马灯效果的方法

    Android基于TextView属性android:ellipsize实现跑马灯效果的方法

    这篇文章主要介绍了Android基于TextView属性android:ellipsize实现跑马灯效果的方法,涉及Android跑马灯效果所涉及的TextView相关属性与使用方法,需要的朋友可以参考下
    2016-08-08
  • Android添加联系人到通讯录的方法

    Android添加联系人到通讯录的方法

    本周项目中遇到了需要添加联系人或者添加到已有联系人的需求,联系人中需要保存的字段有很多,之前不太熟悉,在这里总结一下。
    2021-05-05
  • Flutter 完美的验证码输入框实现

    Flutter 完美的验证码输入框实现

    这篇文章主要介绍了Flutter 完美的验证码输入框实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Android开发之实现GridView支付宝九宫格

    Android开发之实现GridView支付宝九宫格

    本文给大家介绍android开发之实现gridview支付宝九宫格,其原理是让每个item都设置成带有分割线的背景,在这不透漏太多内容,感兴趣的朋友请阅读全文
    2015-11-11
  • Android RecyclerView区分视图类型的Divider的实现

    Android RecyclerView区分视图类型的Divider的实现

    本篇文章主要介绍了Android RecyclerView区分视图类型的Divider的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Android自定义view实现倒计时控件

    Android自定义view实现倒计时控件

    这篇文章主要为大家详细介绍了Android自定义view实现倒计时控件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • Android加载loading对话框的功能及实例代码(不退出沉浸式效果)

    Android加载loading对话框的功能及实例代码(不退出沉浸式效果)

    这篇文章主要介绍了Android加载loading对话框的功能及实例代码,不退出沉浸式效果,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-12-12
  • Android打造流畅九宫格抽奖活动效果

    Android打造流畅九宫格抽奖活动效果

    抽奖活动有很多种形式,转盘抽奖,九宫格抽奖,刮刮卡抽奖,这篇文章主要为大家详细介绍了如何打造流畅九宫格抽奖活动效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11

最新评论