300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 架构组件—Android应用中使用视图绑定(binding)

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

时间:2019-01-02 12:30:33

相关推荐

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

文章目录

一. 概述二. 在Activity中使用视图绑定(binding)步骤一:在应用级 build.gradle (非项目级build.gradle)文件中开启viewBinding步骤二:在Activity Java文件中使用视图绑定功能2.1 导入ActivityMainBinding2.2 定义binding变量2.3 初始化binding变量2.4 使用binding三. 在Fragment中使用视图绑定(binding)步骤一:在应用级 build.gradle (非项目级build.gradle)文件中开启viewBinding步骤二:在Fragment Java文件中使用视图绑定功能2.1 导入FragmentLoginBinding2.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./topic/libraries/view-binding


五. 结束语

本文档为博主自主学习Android应用开发过程中的经验总结与心得体会,希望能在读者的学习道路上帮上一点点小忙,共同学习,共同成长。

欢迎读者评论留言,点赞,收藏,分享!


本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。