有做销售产品的网站用ps切片做网站

web/2025/10/4 4:00:39/文章来源:
有做销售产品的网站,用ps切片做网站,中国国际技术智力合作公司官网,淘客做网站怎么备案文章目录 ViewBinding使用方法1.build.gradle中开启2.代码中使用普通ActivityFragmentAdapterinclude View Binding 的传统使用方式与findViewById的区别与DataBinding的对别 ViewBinding ViewBinding是Google在2019年I/O大会上公布的一款Android视图绑定工具#xff0c;在And… 文章目录 ViewBinding使用方法1.build.gradle中开启2.代码中使用普通ActivityFragmentAdapterinclude View Binding 的传统使用方式与findViewById的区别与DataBinding的对别 ViewBinding ViewBinding是Google在2019年I/O大会上公布的一款Android视图绑定工具在Android Studio 3.6中添加的一个新功能更准确的说它是DataBinding的一个更轻量变体 使用方法 1.build.gradle中开启 在build.gradle文件中的android节点添加如下代码: android {...buildFeatures {viewBinding true} }重新编译后系统会为每个布局文件生成对应的Binding类该类中包含对应布局中具有id的所有视图的直接引用。 如果项目中存在多个模块则需要在每个模块的build.gradle文件中都加上该配置。 假设某个布局文件的名称为result_profile.xml所生成的绑定类的名称就为ResultProfileBinding。 如果布局中的控件没有ID那么绑定类中不存在对它的引用。 每个绑定类还包含一个 getRoot() 方法用于为相应布局文件的根视图提供直接引用。 如果你希望在生成绑定类时忽略某个布局文件可以将tools:viewBindingIgnoretrue属性添加到相应布局文件的根视图中: LinearLayout...tools:viewBindingIgnoretrue ... /LinearLayout2.代码中使用 普通Activity class SplashActivity : BaseActivity() {private lateinit var binding: ActivitySplashBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)binding ActivitySplashBinding.inflate(layoutInflater)setContentView(binding.root)// mtv为xml中定义的idbinding.mtv.text fuck the world} }Fragment 在Fragment中我们需要进行额外的工作来避免内存泄漏方法是在onDestroyView方法中将ViewBinding引用设置为null。 具体如下: class HomeFragment : Fragment() {private var _binding: HomeFragmentBinding? null// 只在onCreateView和onDestroyView之间有效private val binding get() _binding!!override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {_binding ResultProfileBinding.inflate(inflater, container, false)return binding.root}override fun onViewCreated(view: View, savedInstanceState: Bundle?) {super.onViewCreated(view, savedInstanceState)binding.tvHelloWorld.text Hello Android!}override fun onDestroyView() {super.onDestroyView()_binding null} }这里使用了两个不同的变量并且在onDestroyView()中将_binding变量设置为null。 这是因为碎片的生命周期与活动的生命周期不同并且碎片有着比它们的视图更长的生命周期所以如果我们不将其设置为null可能会发生内存泄漏。 另一个变量用于避免使用进行空检查通过使一个变量可以为null而另一个变量不为null。 Adapter 还有在Adapter中的使用因为布局不是只创建一次而是每个item都会创建不能像上面那样在Adapter里写一个binding全局变量不然binding只会得到最后一次创建的视图。所以binding对象应该是给ViewHolder持有。具体如下: class TextAdapter(private val list: ListString) : RecyclerView.AdapterTextAdapter.TextViewHolder() {override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TextViewHolder {val binding ItemTextBinding.inflate(LayoutInflater.from(parent.context), parent, false)//在生成时先给binding赋值然后传参给ViewHolder的构造器return TextViewHolder(binding)}override fun onBindViewHolder(holder: TextViewHolder, position: Int) {val content list[position]holder.binding.tvContent.text content}override fun getItemCount() list.sizeclass TextViewHolder(val binding : ItemTextBinding) : RecyclerView.ViewHolder(binding.root) }include ViewBinding同样可以被用于include中。 需要对include指定id通过id来获取,例如: ?xml version1.0 encodingutf-8? androidx.constraintlayout.widget.ConstraintLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroidx.appcompat.widget.Toolbarandroid:idid/toolbarandroid:layout_width0dpandroid:layout_height?actionBarSizeandroid:background?colorPrimaryapp:layout_constraintEnd_toEndOfparentapp:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toTopOfparent //androidx.constraintlayout.widget.ConstraintLayout?xml version1.0 encodingutf-8? androidx.constraintlayout.widget.ConstraintLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentincludeandroid:idid/appbarlayoutlayout/app_barapp:layout_constraintTop_toTopOfparent //androidx.constraintlayout.widget.ConstraintLayoutoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val binding: MainLayoutBinding MainLayoutBinding.inflate(layoutInflater)setContentView(binding.root)setSupportActionBar(binding.appbar.toolbar)//不多说}View Binding 的传统使用方式 创建和销毁viewBinding的样板代码如果有很多Fragment,每一个都要拷贝一份相同的代码viewBinding 属性是可空的并且可变的这可不太妙 而且使用起来不方便我们希望用更简单的方式,例如: class MainActivity : AppCompatActivity() {private val binding by viewBinding(ActivityMainBinding::inflate) }怎么办呢用强大Kotlin委托来重构它。通过属性委托可以自动执行inflate()方法和setContentView()方法。 与findViewById的区别 与使用 findViewById 相比视图绑定具有一些很显著的优点 Null 安全 由于视图绑定会创建对视图的直接引用因此不存在因视图ID无效而引发Null指针异常的风险。此外如果视图仅出现在布局的某些配置中则绑定类中包含其引用的字段会使用Nullable标记。类型安全 每个绑定类中的字段均具有与它们在XML文件中引用的视图相匹配的类型。这意味着不存在发生类转换异常的风险。 这些差异意味着布局和代码之间的不兼容将会导致构建在编译时而非运行时失败。 与DataBinding的对别 ViewBinding与DataBinding均会生成可用于直接引用视图的绑定类。但是ViewBinding旨在处理更简单的用例与DataBinding相比具有以下优势: 更快的编译速度 视图绑定不需要处理注释因此编译时间更短。易于使用 视图绑定不需要特别标记的XML布局文件因此在应用中采用速度更快。在模块中启用视图绑定后它会自动应用于该模块的所有布局。 反过来与数据绑定相比视图绑定也具有以下限制: 视图绑定不支持布局变量或布局表达式因此不能用于直接在XML布局文件中声明动态界面内容。视图绑定不支持双向数据绑定。 考虑到这些因素在某些情况下最好在项目中同时使用视图绑定和数据绑定。您可以在需要高级功能的布局中使用数据绑定而在不需要高级功能的布局中使用视图绑定。

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

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

相关文章

手机网站 布局网站建设600元包

这是一篇10年前的文章,但我觉得即便过去这么久了,文章内的方法还是具有普适性的。刊发在此,希望能对读者有所帮助。 问题:社区里怎么引入一些专业的意见领袖,并让这些领袖每天发布专业性的内容,吸引普通的…

通州 网站建设wordpress auto get rss

文章目录 1. 编码1.1 ASCLL编码1.2 URL编码1.3 Unicode编码1.4 HTML编码1.5 Base64编码 2. form表单2.1 php接收form表单2.2 python接收form表单 1. 编码 1.1 ASCLL编码 ASCII 是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的…

深圳医院网站建设用DW做的网站怎么分享给别人

前段时间做项目的时候,要使用富文本编辑器,采用的是wangEditor,结果当用户在为文本添加样式的时候,发现居然无法直接保存,遂查看后台数据。发现很多样式都被过滤掉了,后台接受的数据中根本没有样式。在网上…

义乌企业网站国外的有名的网站

随着智能化技术的不断发展,汽车制造企业正积极寻求提升智能化水平的途径。富唯智能的3D视觉引导机器人抓取技术为汽车制造企业提供了一种高效、智能的自动化解决方案。 项目目标 某汽车制造企业希望通过引入智能化技术提升生产线的自动化水平和智能化程度。他们希望…

做网站多久才会有收益网易免费企业邮箱注册申请

乐观锁和悲观锁是处理数据库并发操作的两种不同策略 乐观锁: 乐观锁的核心思想是“乐观”,它假设在数据处理过程中,冲突发生的概率较低。因此,乐观锁不会在事务开始时就锁定数据,而是在数据提交时检查是否有其他事务…

威县建设局网站搭建网站平台有前途吗

在上堆中已经介绍了什么是二叉树,所以这里直接写二叉树实现。 1、二叉树的构建 二叉树的构建第一步肯定是初始化,也就是构建这棵树,这里是利用前序遍历构建的,因为这里是利用链表形式创建的二叉树,所以这里就是和之前…

网站建设河南百度站长网站规则改版

状态更改检测,也就是检测应用程序对状态值的改变,这样才会相应地更新 UI。 (#MVC模式中模型Model的改变会更新View界面UI,这点类似后端的ORM,对象状态更改通过ORM框架自动变更相应数据表值) 变更检测是前…

创建网站的流程有哪些零基础怎么学视频剪辑

出差回来,发现太多事需要处理现在每个项目都在Delay。且没有一个人是主动汇报项目的。这是非常不正常的现象。感觉有点累转载于:https://www.cnblogs.com/boriscao/archive/2005/09/03/229368.html

广州教育网站设计公司友情链接怎么连

本来以为以前的差不多够用了。呵呵,看到很多高手用高技巧,心痒痒的觉得我自己还可以提升啊。。哈哈哈。 这个实践起来之后,,SED,AWK也得深化一下,,,SHELL和PYTHON,作运维的两样都不能…

wordpress一行太宽了十堰seo按天计费

一、起因 1、需求: 由于业务需求在页面一次性展示较多数据,不低于上千,但是每条数据涉及样式较多,数据渲染过多就会导致页面卡顿 2、满足: 大量数据加载;表格功能:列显隐、列顺序调整、固定、筛…

中企动力做的网站升级收费广西省住房和城乡建设厅官方网站

作为青岛市的主干道之一,山东路的拥堵状况一直让人头疼。近日,因为一种交通组织优化方案的实施,山东路和延吉路的通行率提高了近50%。而研发这种智能管控系统的正是位于青岛高新区的青岛智能产业技术研究院。截止今年5月份,青岛智…

php快速建站系统芜湖网站推广

最近开发WAP网站时,最讨厌的就是back键,会造成些麻烦事。不过,问题总有办法解决。 有些页面,点击back键回退会加载缓存,这不是想要的,所以希望能够控制该页面不缓存,每次请求都需要从服务器获取…

重庆网站备案规则wordpress页面怎么切换

引言:陌瑾出品,争做精品!大家好,我是你们的老朋友,陌瑾。和平精英作为当下比较热门的一款PVP即时战斗手游,在6月17日,海岛2.0版本也重装上阵,此次地图更新是和平精英游戏上线以来第1…

电子商务网站软件平台百度一下首页极简版

目录 一、算法原理二、代码实现三、结果展示四、相关连接Open3D (C++) 点云投影至主成分空间由CSDN点云侠原创,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 p r o j

做网站开发用哪门语言凡科建站代理入口

5G是什么?5G,其中字母G代表generation(代、际)。即第五代移动电话行动通信标准,也称第五代移动通信技术。5G的应用范围很广,大致可以包括以下几个方面:1、5G综合产业链分析2、5G与物联网3、5G与车联网4、5G与无线医疗5G对服务器的要求“云端…

基于阿里云的电商网站建设男女明星直接做的视频网站

总之,抖音招聘是一种新颖、高效的招聘方式,它可以为公司带来更大的曝光度和吸引力,帮助公司吸引更多优秀的人才。通过抖音直播招聘报白,企业或者人力资源公司可以利用抖音的短视频流量红利,触达到每天超过8亿的活跃用户…

女装网站建设规划书怎么写商城全网推广运营公司

目录 透传 Attributes Attributes 继承​ 对 class 和 style 的合并 v-on 监听器继承 深层组件继承 禁用 Attributes 继承 多根节点的 Attributes 继承 vue2 $attrs 和 $listeners $attrs 概念说明 $attrs 案例 $listeners 概念说明 $listeners案例 vue3 $attr…

智能网站推广优化福州做网站建设

总览 MineCraft是一个很好的例子,说明何时堆外内存确实可以提供帮助。 关键要求是: 保留的数据大部分是一个简单的数据结构(在我的世界的情况下,它的很多字节[]) 堆外内存的使用可以隐藏在抽象中。 考试 我使用以下测…

建设网站的工作流程价值30万的网站建设

prototype 属性的作用 JavaScript 规定,每个函数都有一个prototype属性,指向一个对象。 function f() {} typeof f.prototype // "object" ​ 上面代码中,函数f默认具有prototype属性,指向一个对象。 对于普通函数来…

百盛联合建设集团网站成功的软文推广

目录 一、ELK 简介 1.1 组件说明 1.2 为什么要使用ELK 1.3 完整日志系统的基本特征 1.4 ELK工作原理 二、Elasticsearch的介绍 2.1 Elasticsearch的核心: 三、Logstash 3.1 Logstash简介 四、Kibana 五、部署ELK日志分析系统 5.1 服务器配置 5.2 ELK Elasticse…