肉菜配送网站建设wordpress 上传 阿里云

pingmian/2026/1/26 19:21:05/文章来源:
肉菜配送网站建设,wordpress 上传 阿里云,wordpress 安装 此网页包含重定向循环,惠州做棋牌网站建设作为Google官方发布的支持库#xff0c;DataBinding实现了UI组件和数据源的双向绑定#xff0c;同时在Jetpack组件中#xff0c;也将DataBinding放在了Architecture类型之中。对于DataBinding的基础使用请先翻阅前两篇文章的详细阐述。本文所用代码也是建立在之前工程基础之…作为Google官方发布的支持库DataBinding实现了UI组件和数据源的双向绑定同时在Jetpack组件中也将DataBinding放在了Architecture类型之中。对于DataBinding的基础使用请先翻阅前两篇文章的详细阐述。本文所用代码也是建立在之前工程基础之上。 初始化分析 按照官方文档所说Databinding在编译期会生成代码利用的技术是Apt(annotation-processing-tool)。在运行完工程后可以看到build文件夹下生成多个文件夹和文件看到了这里就可以明白其核心原理肯定跟注解处理器有关系其实所有通过APT生成代码的框架比如ButterKnife,dagger2,hit等大多数情况下其核心逻辑的实现都在生成代码中可以说其完全就是通过注解处理器产生的因此需要我们重点翻阅的都是生成的代码。在我们按照规则写完布局文件后会生成相应的.java文件文件名为xml文件名加上Binding后缀。原工程则生成是的ActivityMainBinding.java文件这点不难理解。 从XML开始 让我们关注build目录下的intermediates目录你会发现相较于其他没有使用Data Binding的工程这里多了几个目录 不难猜出这是DataBinding特有的目录风格。我们看到最后一个文件夹展开会发现 这里的activity_main-layout.xml像极了我们activity所使用布局。点开会发现里面充满了各种标签。如果一开始里面代码只有一行则可以使用快捷键 Windows : ctrlAlt L调整代码格式 先列出原布局文件 ?xml version1.0 encodingutf-8? layout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsxmlns:apphttp://schemas.android.com/apk/res-autodataimport typecom.example.dbjavatest.bean.DataBean/variablenamedataInfoBeantypeDataBean //dataandroidx.constraintlayout.widget.ConstraintLayoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityTextViewandroid:idid/tv_dataandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textSize26spandroid:textColorcolor/purple_200android:text{dataInfoBean.dataInfo}app:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toTopOfparentandroid:layout_marginLeft50dp/EditTextandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:hint请输入数据android:text{dataInfoBean.dataInfo}app:layout_constraintTop_toBottomOfid/tv_dataandroid:textSize25spandroid:layout_marginTop30dpandroid:paddingLeft20dp//androidx.constraintlayout.widget.ConstraintLayout /layout可以看出这里面总共三个控件对应activity_main-layout.xml中有三个 target节点。 节点里view属性名称则刚好可以是我们布局中所用控件这里就是我们在布局中声明的控件无疑。在这些 target信息中还可看到所赋予的tag信息binding_1、binding_2。而在Expression标签中text对应属性值里有“dataInfoBean.dataInfo”这就刚好对应上数据来源。当然仅仅靠这个文本是不可能生成一个能绘制出来的效果。这时还要观察另外一个文件。 在intermediates/incremental目录下相应的有效文件夹为mergeDebugResources\stripped.dir\layout 下对应的文件名即为布局文件名 点开后你会发现相较于原始的activity_main.xml布局文件 layout和 data标签都消失了 且内部控件都多了一个属性android:tag属性。此tag属性所赋id则跟build/intermediates/data_binding_layout_info_type_package/debug/out/activity_main-layout.xml中的标签里的tag相对应。不难猜出其xml具体显示流程与这俩文件紧密相关。 接下来就要去看整体的流程了。 初始化流程 要分析整体流程还得从MainActivity入手DataBindingUtil.setContentView(this, R.layout.activity_main);就是完成XML布局的初始化操作 点进去查看其源码 可以发现这里通过获取Window的decorView来把传进来的layoutId(即我们的布局)通过bindToAddedViews()绑定到屏幕视图上。这里的contentView和其id.content是工程创建时Activity就自带的默认FrameLayout对这个不了解的要去了解下屏幕渲染机制在这里不需要纠结。 继续观察bindToAddedViews()内部对于绑定的过程实现 可看到最终都是调用的bind 这其中有个变量sMapper。我们看到声明地方 可以看到此变量是由一个生成类new出来且此类并不是原先就存在只有在编译过程结束后才生成出来的文件 而在此类中最重要的就是getDataBinder在此方法中可以看到拿标签流程 通过判断是activity_main.xml的id来返回一个new ActivityMainBindingImpl(component, view);对象。我们点进去观察此对象源码 可以看出对应取控件id等操作来源得看mapBindings内部实现 此方法后续逻辑基本上都是如此在这方法体内将所有view存进一个数组然后在ActivityMainBindingImpl中通过bindings[1]去获取view实例 然后通过invalidateAll()更新所有UI。 以上不难看出这些流程就是XML布局的初始化所有流程。在初始化结束后xml的控件信息就存在了DataBinding对象里就可以通过DataBinding对象拿到具体对应控件对象实例了。 ActivityMainBinding viewDataBinding DataBindingUtil.setContentView(this, R.layout.activity_main); viewDataBinding.tvData.setText(拿到对象实例了);这也正是为什么DataBinding可以不用findViewById了的原因。其实不难想到随着页面的UI复杂度的增加dataBinding对内存的消耗也会越大个人感觉这是DataBinding的缺点。后面有时间我会去对比DataBinding与常规架构所构建的APP在内存和整体性能上的区别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/85422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站静态和动态区别是什么国内最新新闻摘抄2023年

1、转速/频率常用转换关系 转速/频率/线速度/角速度计算FC_200 plc计算角速度-CSDN博客文章浏览阅读3.2k次。里工业控制张力控制无处不在,也衍生出很多张力控制专用控制器,磁粉制动器等,本篇博客主要讨论PLC的张力控制相关应用和算法,关于绕线机的绕线算法,大家可以参看专…

网站建设维护和服务合同建筑工程网上报建网站诚信手册

我们能想象当客户有贷款需求时会发生什么吗? 客户可能会打开手机搜索“如何借款”、“哪笔贷款利息低”、“最多能借多少钱”、“贷款需要什么条件”等关键词,然后,客户点击进入第一个链接,然后填写他们的姓名和电话号码来测试他…

建设外贸英文网站安徽设计公司排名

1773. 统计匹配检索规则的物品数量 难度:简单 题目 给你一个数组 items ,其中 items[i] [typei, colori, namei] ,描述第 i 件物品的类型、颜色以及名称。 另给你一条由两个字符串 ruleKey 和 ruleValue 表示的检索规则。 如果第 i 件物…

网站做实名验证码华为做网站

在linux C 编程中,我们经常遇到字符串的处理,最多的就是字符串的长度、拷贝字符串、比较字符串等;当然现在的C库中为我们提供了很多字符串处理函数。熟练的运用这些函数,可以减少编程工作量,这里介绍几个常…

贵州易广建设集团网站普像工业设计网站

视频云存储/安防监控/视频汇聚平台EasyCVR基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。安防视频监控系统EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云…

深圳个人做网站综合返利商城网站建设

APP 上线以后可能遇到的问题:① APP 强退② 数据加载失败③ APP 潜在问题错误日志需要记录的内容数据表 error_log 字段:idapp_id:app 类别 iddid:客户端设备号version_id:版本号version_mini:小版本号erro…

做网站都是怎么收费上海猎头公司电话

本篇教程介绍了HTMLCSS入门 自定义模板详解&#xff0c;希望阅读本篇文章以后大家有所收获&#xff0c;帮助大家HTMLCSS入门。<首先总的stylecss和大模板都是当初angel_Kitty学姐的&#xff0c;嗯&#xff0c;连接在这&#xff0c;可以自己去看&#xff1a;自定义页面风格设…

铜陵市网站建设运城网站建设价格

一.引例&#xff08;哥尼斯堡七桥问题&#xff09; 哥尼斯堡七桥问题是指在哥尼斯堡市&#xff08;今属俄罗斯&#xff09;的普雷格尔河&#xff08;Pregel River&#xff09;中&#xff0c;是否可以走遍每座桥一次且仅一次&#xff0c;最后回到起点的问题。这个问题被认为是图…

站群cms源码seo外包网站

JGroups是Bela Ban的用于可靠消息交换的软件&#xff0c;该软件高度可配置&#xff0c;可以使用TCP或UDP作为传输协议。 基本上&#xff0c;您在多个客户端上运行JGroup&#xff0c;它们构成一个集群&#xff0c;它们可以在集群内发送和接收消息。 JGroups由JBoss Infinispan内…

手机网站模版php源码广东省建设信息网三类人员

在日常生活和工作中&#xff0c;经常会遇到需要修改文件夹名称的情况。有时候是因为文件夹名称中包含了数字&#xff0c;有时候是因为文件夹名称不符合规范。无论出于什么原因&#xff0c;修改文件夹名称都是一件非常繁琐的事情。尤其是需要修改大量文件夹名称时&#xff0c;手…

来几个好看的网站湘阴网站建设

给你一棵二叉搜索树&#xff0c;请你 按中序遍历 将其重新排列为一棵递增顺序搜索树&#xff0c;使树中最左边的节点成为树的根节点&#xff0c;并且每个节点没有左子节点&#xff0c;只有一个右子节点。 示例 1&#xff1a; 输入&#xff1a;root [5,3,6,2,4,null,8,1,null…

在线股票交易网站开发手机制作价格表的软件

2017-08-01 13:40:17在程序运行过程中&#xff0c;总会遇到各种各样的错误。有的错误是程序编写有问题造成的&#xff0c;比如本来应该输出整数结果输出了字符串&#xff0c;这种错误我们通常称之为bug&#xff0c;bug是必须修复的。有的错误是用户输入造成的&#xff0c;比如让…

搜索引擎在哪里获取网站wordpress模糊搜索插件

二分查找属于静态查找表&#xff0c;当以有序表表示静态查找表时&#xff0c;查找函数可用折半查找来实现。 查找过程&#xff1a;先确定待查记录所在的范围&#xff08;区间&#xff09;&#xff0c;然后逐步缩小范围直到找到或找不到该记录为止。 以处于区间中间位置记录的…

专业网站建设机构建筑专业网站有哪些

&#x1f4bb; React 基础篇&#xff08;二&#xff09;&#x1f3e0;专栏&#xff1a;React &#x1f440;个人主页&#xff1a;繁星学编程&#x1f341; &#x1f9d1;个人简介&#xff1a;一个不断提高自我的平凡人&#x1f680; &#x1f50a;分享方向&#xff1a;目前主攻…

大丰网站建设网站开发文档百度文库

列表 是最常用到的组件 一 ForEach 渲染控制语法————Foreach Foreach的作用 遍历数组项&#xff0c;并创建相同的布局组件块在组件加载时&#xff0c; 将数组内容数据全部创建对应的组件内容&#xff0c; 渲染到页面上 const swiperImage: Resource[] {$r("app.me…

重庆网站建设狐灵wordpress The7 v4.4.8深度汉化

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年【R1快开门式压力容器操作】试题及解析及R1快开门式压力容器操作模拟试题&#xff0c;包含R1快开门式压力容器操作试题及解析答案和解析及R1快开门式压力容器操作模拟试题练习。安全生产模拟考试一点通结合国家…

外贸婚纱网站 侵权网站自适应

[网鼎杯 2020 朱雀组]Think Java swagger [[swagger]] 首先下载源码&#xff0c;查看之后发现 查找swagger资料&#xff0c;或者扫描&#xff0c;得到&#xff1a;swagger-ui.html swagger-ui 提供了一个可视化的UI页面展示描述文件。接口的调用方、测试、项目经理等都可以…

韶关市手机网站建设怎么样襄阳教育云平台网站建设

HarmonyOS的开发语言是ArkTS、JS(JavaScript)。 ArkTS简介 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性&#xff0c;是TS的超集。因此&#xff0c;在学习…

正安县网站seo优化排名长春市建设集团

一、变量 1&#xff09;. 命名规则&#xff1a; 1. 变量名不能使用系统关键字或保留关键字 2. 变量区分大小写 3. 变量命名由字母&#xff0c;数字&#xff0c;下划线组成但不能以数字开头 4. 不需要声明变量类型 是 a 1 非 int a 1 5. 查看变量内存地址 id(a), id(b) 6…

企业为什么选择网站建设奉贤网站建设推广

打开powerDesigner 新建 PDM(物理数据模型) 添加表字段 双击表&#xff0c;设置ID自增 选择导出数据库表SQL 导出成功 使用三方工具连接数据库&#xff0c;然后运行对应SQL文件即可 导入SQL文件数据到powerDesigner