文章目录

  • 一. 概述
  • 二. 在Activity中使用视图绑定(binding)
    • 步骤一:在应用级 build.gradle (非项目级build.gradle)文件中开启viewBinding
    • 步骤二:在Activity Java文件中使用视图绑定功能
      • 2.1 导入ActivityMainBinding
      • 2.2 定义binding变量
      • 2.3 初始化binding变量
      • 2.4 使用binding
  • 三. 在Fragment中使用视图绑定(binding)
    • 步骤一:在应用级 build.gradle (非项目级build.gradle)文件中开启viewBinding
    • 步骤二:在Fragment Java文件中使用视图绑定功能
      • 2.1 导入FragmentLoginBinding
      • 2.2 定义binding变量
      • 2.3 初始化binding变量
      • 2.4 使用binding
  • 四. 参考资料
  • 五. 结束语

一. 概述

通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 XML 布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。
在大多数情况下,视图绑定会替代 findViewById。


二. 在Activity中使用视图绑定(binding)

步骤一:在应用级 build.gradle (非项目级build.gradle)文件中开启viewBinding

视图绑定功能启用。需将 viewBinding 元素添加到其 build.gradle 文件中,如下例所示:

    viewBinding {enabled = true}

步骤二:在Activity Java文件中使用视图绑定功能

2.1 导入ActivityMainBinding

import com.example.demo.databinding.ActivityMainBinding;

2.2 定义binding变量

    // 声明binding用于视图绑定功能private ActivityMainBinding binding;

2.3 初始化binding变量

    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 使用binding视图绑定功能/** 通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 XML 布局文件生成一个绑定类。* 绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。* */// 初始化binding binding = ActivityMainBinding.inflate(getLayoutInflater());View view = binding.getRoot();setContentView(view);}

2.4 使用binding

使用视图绑定功能引用控件,如:
binding.bottomNavigationViewMain

    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 使用binding视图绑定功能/** 通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 XML 布局文件生成一个绑定类。* 绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。* */// 初始化binding binding = ActivityMainBinding.inflate(getLayoutInflater());View view = binding.getRoot();setContentView(view);//使用视图绑定引用控件bottomNavigationViewMain// 为bottomNavigationViewMain设置监听事件setOnNavigationItemSelectedListener,onNavigationItemSelected,用于改变viewPager2Main的CurrentItembinding.bottomNavigationViewMain.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {@SuppressLint("NonConstantResourceId")@Overridepublic boolean onNavigationItemSelected(@NonNull MenuItem item) {return false;}});}

三. 在Fragment中使用视图绑定(binding)

步骤一:在应用级 build.gradle (非项目级build.gradle)文件中开启viewBinding

与在Activity中使用视图绑定(binding)的步骤一相同

步骤二:在Fragment Java文件中使用视图绑定功能

2.1 导入FragmentLoginBinding

import com.example.demo.databinding.FragmentLoginBinding;

2.2 定义binding变量

    // 声明Binding对象private FragmentLoginBinding binding;

2.3 初始化binding变量

@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// Inflate the layout for this fragment//使用binding视图绑定功能/** 通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 XML 布局文件生成一个绑定类。* 绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。* */binding = FragmentLoginBinding.inflate(inflater, container, false);View view = binding.getRoot();return view;}

2.4 使用binding

使用视图绑定功能引用控件,如:
binding.buttonLoginLogin

@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// Inflate the layout for this fragment//使用binding视图绑定功能/** 通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 XML 布局文件生成一个绑定类。* 绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。* */binding = FragmentLoginBinding.inflate(inflater, container, false);View view = binding.getRoot();binding.buttonLoginLogin.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_loginFragment_to_mainActivity, null));return view;}

四. 参考资料

https://developer.android.google.cn/topic/libraries/view-binding


五. 结束语

本文档为博主自主学习Android应用开发过程中的经验总结与心得体会,希望能在读者的学习道路上帮上一点点小忙,共同学习,共同成长。
欢迎读者评论留言,点赞,收藏,分享!


架构组件—Android应用中使用视图绑定(binding)相关推荐

  1. 导航组件—Android应用中使用ViewPager2创建滑动视图

    文章目录 一. 概述 二. 使用步骤 2.1 步骤一:在Activity或Fragment布局文件中添加ViewPager2 2.2 步骤二:创建ViewPager2每一个页面的视图Fragment ...

  2. Android Studio 中列表视图(ListView)的应用

    目录 引言 一.列表视图的作用 二.列表视图的工作原理和工作方式 三.准备数据源 四.适配器的使用 五.布局文件中的列表视图 六.自定义列表项布局 七.列表项点击事件处理 八.列表的优化 十.示例代码 ...

  3. 导航组件—Android应用中使用导航图

    文章目录 一. 概述 1.1 导航的概念 1.2 导航的组成 1.3 导航的优势 二. 使用步骤 2.1 步骤一:在应用级 build.gradle (非项目级build.gradle)文件中添加依赖 ...

  4. android官方架构组件,Android 架构组件官方文档01——LifeCycle

    使用生命周期感知组件处理生命周期 支持生命周期的组件执行操作以响应另一个组件(例如Activity和fragment)的生命周期状态更改.这些组件可帮助您生成组织性更好,并且通常更轻量的代码,这些代码 ...

  5. 【JetPack】视图绑定 ( ViewBinding ) 各种应用 ( 视图绑定两种方式 | Activity 布局 | 对话框布局 | 自定义组件布局 | RecyclerView 列表布局 )

    文章目录 I . 视图绑定 ( ViewBinding ) 界面的两种方式 II . Activity 界面中 应用 视图绑定 ( ViewBinding ) III . Dialog 对话框界面中 ...

  6. 【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )

    文章目录 I . 为现有项目配置 视图绑定 ( ViewBinding ) 应用 II . 视图绑定 ( ViewBinding ) 定制 III . 视图绑定 ( ViewBinding ) 对于正 ...

  7. 【JetPack】ViewBinding 视图绑定组件 ( 启用模块 | 视图绑定定制 | 绑定类名称生成规则 | 绑定类字段生成规则 | 绑定类获取根视图 | 绑定类获取布局组件 )

    文章目录 I . 视图绑定组件简介 II . 视图绑定 ViewBinding 使用前提 ( Android Studio 3.6 ) III . 视图绑定组件启用 IV . 定制视图绑定 ( 启用视 ...

  8. 【大揭秘】Android架构组件ViewModel来龙去脉

    ViewModel是google官方的MVVM架构组件,目前已经集成到了最新的支持库中了,是MVVM架构的核心组件之一.不懂MVVM的请看之前的文章:(一)Android官方MVVM框架实现组件化之整 ...

  9. Android架构组件(二):LiveData

    前言 上篇文章我们分析了Lifecycle的使用和原理,相信我们已经学会了用Lifecycle将你所需的类添加声明周期管理,如果只是寥寥阅读也没关系,这里奉上(双膝跪地)上篇地址,Android架构组 ...

  10. android studio viewo,android studio 3.6.0 绑定视图新特性的方法

    Android studio 3.6.0 绑定视图使用方法 1.确保你的 build gradle 最低为3.6.0 dependencies { classpath 'com.android.too ...

最新文章

  1. Strategy策略模式
  2. Android Broadcast Security
  3. sharePoint查看与更改用户登录账号
  4. 悬崖边上的舞者,记7.2生产数据库灾难事件
  5. c语言指针中冒号的用法,在c中使用冒号后面的类名
  6. java的正则表达式 CPU_小心踩雷!一个小小的正则表达式竟把CPU拖垮......
  7. 分享几个接口自动化的实战练手项目
  8. Eclipse怎样把文件系统形式的项目作为工程直接导入?
  9. android的Handler、Message机制*
  10. soapui返回值类型都有哪些_滚珠丝杠的常用类型都有哪些?
  11. python中当地时间_Python 日期和时间
  12. stored to '*' during its initialization is never read
  13. win10便签常驻桌面_小巧免费的桌面便签工具分享
  14. OpenGl 之学习笔记 glNormal3f 函数理解和光源相关知识总结
  15. 【矩阵论】线性空间与线性变换(5)
  16. 《程序员养成记》第5集 学习编程的乐趣
  17. 微信小程序之实现层叠轮播图的效果案例(前端学习收藏夹必备)
  18. Js数组里删除指定的元素(不是指定的位置)
  19. Jenkins构建maven项目失败
  20. verilog中pullup和pulldown的用法

热门文章

  1. java openoffic linux_windows/linux服务器上java使用openoffice将word文档转换为PDF(亲测可用)...
  2. java在pdf文件中插入字_怎么在PDF文件中添加文字文本框
  3. 福州大学计算机学院奖学金,福州大学最新学院奖学金评定标准
  4. Ubuntu20.04安装Steam报错及解决
  5. 原创科幻短篇《高考》
  6. 阿里巴巴达摩院:自然语言处理技术有哪些进展和趋势?
  7. 图文详解优麒麟系统安装教程(建议收藏)
  8. 【数据结构与算法】——一文带你理清线性表的基础(java代码演示)
  9. 53Java模拟器,515最好的java模拟器
  10. allgro pcb铜皮编辑_Allegro设计PCB基础知识:快捷键设置、铜皮处理、DC-DC布局布线、电源分割等等...