架构组件—Android应用中使用视图绑定(binding)
文章目录
- 一. 概述
- 二. 在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)相关推荐
- 导航组件—Android应用中使用ViewPager2创建滑动视图
文章目录 一. 概述 二. 使用步骤 2.1 步骤一:在Activity或Fragment布局文件中添加ViewPager2 2.2 步骤二:创建ViewPager2每一个页面的视图Fragment ...
- Android Studio 中列表视图(ListView)的应用
目录 引言 一.列表视图的作用 二.列表视图的工作原理和工作方式 三.准备数据源 四.适配器的使用 五.布局文件中的列表视图 六.自定义列表项布局 七.列表项点击事件处理 八.列表的优化 十.示例代码 ...
- 导航组件—Android应用中使用导航图
文章目录 一. 概述 1.1 导航的概念 1.2 导航的组成 1.3 导航的优势 二. 使用步骤 2.1 步骤一:在应用级 build.gradle (非项目级build.gradle)文件中添加依赖 ...
- android官方架构组件,Android 架构组件官方文档01——LifeCycle
使用生命周期感知组件处理生命周期 支持生命周期的组件执行操作以响应另一个组件(例如Activity和fragment)的生命周期状态更改.这些组件可帮助您生成组织性更好,并且通常更轻量的代码,这些代码 ...
- 【JetPack】视图绑定 ( ViewBinding ) 各种应用 ( 视图绑定两种方式 | Activity 布局 | 对话框布局 | 自定义组件布局 | RecyclerView 列表布局 )
文章目录 I . 视图绑定 ( ViewBinding ) 界面的两种方式 II . Activity 界面中 应用 视图绑定 ( ViewBinding ) III . Dialog 对话框界面中 ...
- 【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )
文章目录 I . 为现有项目配置 视图绑定 ( ViewBinding ) 应用 II . 视图绑定 ( ViewBinding ) 定制 III . 视图绑定 ( ViewBinding ) 对于正 ...
- 【JetPack】ViewBinding 视图绑定组件 ( 启用模块 | 视图绑定定制 | 绑定类名称生成规则 | 绑定类字段生成规则 | 绑定类获取根视图 | 绑定类获取布局组件 )
文章目录 I . 视图绑定组件简介 II . 视图绑定 ViewBinding 使用前提 ( Android Studio 3.6 ) III . 视图绑定组件启用 IV . 定制视图绑定 ( 启用视 ...
- 【大揭秘】Android架构组件ViewModel来龙去脉
ViewModel是google官方的MVVM架构组件,目前已经集成到了最新的支持库中了,是MVVM架构的核心组件之一.不懂MVVM的请看之前的文章:(一)Android官方MVVM框架实现组件化之整 ...
- Android架构组件(二):LiveData
前言 上篇文章我们分析了Lifecycle的使用和原理,相信我们已经学会了用Lifecycle将你所需的类添加声明周期管理,如果只是寥寥阅读也没关系,这里奉上(双膝跪地)上篇地址,Android架构组 ...
- android studio viewo,android studio 3.6.0 绑定视图新特性的方法
Android studio 3.6.0 绑定视图使用方法 1.确保你的 build gradle 最低为3.6.0 dependencies { classpath 'com.android.too ...
最新文章
- Strategy策略模式
- Android Broadcast Security
- sharePoint查看与更改用户登录账号
- 悬崖边上的舞者,记7.2生产数据库灾难事件
- c语言指针中冒号的用法,在c中使用冒号后面的类名
- java的正则表达式 CPU_小心踩雷!一个小小的正则表达式竟把CPU拖垮......
- 分享几个接口自动化的实战练手项目
- Eclipse怎样把文件系统形式的项目作为工程直接导入?
- android的Handler、Message机制*
- soapui返回值类型都有哪些_滚珠丝杠的常用类型都有哪些?
- python中当地时间_Python 日期和时间
- stored to '*' during its initialization is never read
- win10便签常驻桌面_小巧免费的桌面便签工具分享
- OpenGl 之学习笔记 glNormal3f 函数理解和光源相关知识总结
- 【矩阵论】线性空间与线性变换(5)
- 《程序员养成记》第5集 学习编程的乐趣
- 微信小程序之实现层叠轮播图的效果案例(前端学习收藏夹必备)
- Js数组里删除指定的元素(不是指定的位置)
- Jenkins构建maven项目失败
- verilog中pullup和pulldown的用法
热门文章
- java openoffic linux_windows/linux服务器上java使用openoffice将word文档转换为PDF(亲测可用)...
- java在pdf文件中插入字_怎么在PDF文件中添加文字文本框
- 福州大学计算机学院奖学金,福州大学最新学院奖学金评定标准
- Ubuntu20.04安装Steam报错及解决
- 原创科幻短篇《高考》
- 阿里巴巴达摩院:自然语言处理技术有哪些进展和趋势?
- 图文详解优麒麟系统安装教程(建议收藏)
- 【数据结构与算法】——一文带你理清线性表的基础(java代码演示)
- 53Java模拟器,515最好的java模拟器
- allgro pcb铜皮编辑_Allegro设计PCB基础知识:快捷键设置、铜皮处理、DC-DC布局布线、电源分割等等...