Android开发Compose remember原理是什么


本篇内容主要讲解“Android开发Composeremember原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android开发Composeremember原理是什么”吧!假设有这么一个“随机底色文本”的需求:实现一个 Text,其背景色每次启动都随机产生,且生命周期内不变用Compose可以实现如下:Text 调用 Modifier.background,设置随机从items中取的颜色,每次新的启动,都可能不一样然而很遗憾,上面的背景色虽然是随机产生,但是单次生命周期里,就可能发生变化更奇怪的是,改变的 clicked 值,并没有如预期一样生效,一直是0现象和代码不一?首先,上述代码中的“点击计数” clicked,仅仅是为了测试而存在。因为它是一个 MutableState 对象,点击后改变其值,会触发Recomposition流程,于是组件刷新。这样一来,color 的值将重新由随机函数算出,我们就看到背景色在变化了同理,虽然我们好像在点击的时候改变了 clicked 的值,希望像view系统一样,界面直接响应响应。但是,因为Recomposition的存在,它又被重新构造了,所以其值还是0要实现背景色的整个生命周期固定,但点击文本后,点击计数要更新,应该这么做:仅仅将color和clicked由 remember 包裹起来就解决了问题前面功能的实现,全仗着remember的加持。它究竟是个啥?我们先从颜色的remember着手,它调用的是这个:其注释写明了两个关键点,这也是它的功能描述:记忆由calculation返回的值,仅在composition中执行在Recomposition过程中,不会重新计算,而是直接返回第1步的值那么这又是怎么做到的呢?进一步的相关代码:从上述代码注释免费云主机域名中,基本上已经对原理很清楚了,简单地说就是:由composer作为存储控制无值时,走初始化逻辑并返回值,同时存储该值;有值时,直接返回已存储的值颜色的“值不变”清楚了,那点击计数的“值变”又是怎么回事呢?其实如出一辙,只是点击计数remember的,不是普通值,而是一个 MutableState 类型。这样一来,它就有两层含义了:MutableState对象本身在整个composition生命周期不变 —— 即类似普通值的状态一致性MutableState对象所存储的实际值,可变 —— 这用以触发Recomposition,并且获取更新值到此,相信大家对“Android开发Composeremember原理是什么”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: css怎么实现背景颜色渐变效果

本文小编为大家详细介绍“cs免费云主机域名s怎么实现背景颜色渐变效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“css怎么实现背景颜色渐变效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.首先,在页面中创建一个div标签;2…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/25 18:20
下一篇 03/25 18:21

相关推荐