当前位置: 首页 > news >正文

提升网站收录平台开发工程师

提升网站收录,平台开发工程师,哈尔滨市建设工程网,wordpress回收站位置Kotlin Multiplatform--04#xff1a;经验总结#xff08;持续更新#xff09; 引言 引言 本章用来记载笔者开发过程中的一些经验总结 一、Ktor设置Header 在官方文档中#xff0c;想要设置Header的示例代码如下#xff1a; client.get(https://ktor.io经验总结持续更新 引言 引言 本章用来记载笔者开发过程中的一些经验总结 一、Ktor设置Header         在官方文档中想要设置Header的示例代码如下 client.get(https://ktor.io) {headers {append(HttpHeaders.Accept, text/html)append(HttpHeaders.Authorization, abc123)append(HttpHeaders.UserAgent, ktor client)} }但经过笔者多次测试和踩坑在最新版本的Ktor中这样设置Header根本没用需要用以下代码设置 client.get(https://ktor.io) {headers[User-Agent] ktor client }二、IO与ViewModel         ViewModel是Android开发中一个很重要的概念因为它的存活时间相较于StateHodler更长所以最适合用来处理业务逻辑。普通的ViewModel不能有任何参数如下所示 class MyViewModel: ViewModel() { ... }由于ViewModel存活时间长因此它不能直接引用Context对象更不能被其他对象引用。定义了自己的MyViewModel类后通过以下函数引用MyViewModel对象哪里需要就在哪里调用如果没有这个函数则需要添加以下依赖 // androidx.lifecycle:lifecycle-viewmodel-compose val myViewModel: MyViewModel viewModel()当viewModel中需要涉及文件读写等IO操作时可以使用viewModelScope和withContext切换到IO线程防止阻塞UI。示例代码如下 class MyViewModel: ViewModel() {fun save(context: Context) {viewModelScope.launch {withContext(Dispatchers.IO) {File(context.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS), data.json).outputStream().use {it.write(...)}}}} }三、测量与布局         IntrinsicSize用于控制组件的 固有尺寸测量intrinsic measurement它允许你在布局过程中获取或使用组件的固有宽度或高度。当需要根据子组件的尺寸来约束父组件大小时可以使用IntrinsicSize实现。         例如我有一个父组件Box和两个子组件Row其中包含Text组件的Row大小已知需要让另一个Row大小一致此时可以用如下代码实现 Box(Modifier.height(IntrinsicSize.Min)) {Row {Text(value, fontSize TextUnit(26f, TextUnitType.Sp))}Row(Modifier.fillMaxSize()) {...}}注意事项         1、固有尺寸计算可能会有性能开销应避免在性能敏感的场景过度使用。         2、并非所有组件都支持固有尺寸如 LazyColumn 就没有固有高度。          四、回调与协程         回调函数是非常常见的一种编程范式在Java中尤为突出。但回调函数一多就会形成回调地狱不管是开发还是维护都十分痛苦。Kotlin为了解决这一痛点设计了suspendCoroutine。suspendCoroutine 是 Kotlin 协程中的一个核心函数用于将传统的基于回调的异步操作转换为协程风格的挂起函数。示例代码如下所示 // 模拟常见的回调函数 fun someCallbackFun(callback: (String) - Unit) {callback(myCallback) }// 正常调用方法 fun callBackMain() {someCallbackFun { println(it)} }// 协程调用将非线性程序转为线性程序 suspend fun coroutineMain() {val retval suspendCoroutine { coroutine -someCallbackFun {coroutine.resume(it)}}print(retval) }
http://www.pierceye.com/news/431871/

相关文章:

  • 南宁比优建站视屏网站的审核是怎么做的
  • 怎样建设尧都水果网站免费手机网站建站系统
  • 全网营销提供seo服务
  • 吕梁网站设计服务器网站建设维护合同
  • 网站轮播图片怎么做高校网站建设模板
  • 易语言做返利网站企业培训考试平台官网
  • 天津做不锈钢的网站做网站要几个部门组成
  • 宿迁集团网站建设用dw制作一个网站
  • 网站创建二级域名网络营销到底是个啥
  • 银州手机网站建设做网站前台模型要做什么呢
  • 做彩票网站推广网站建设培训方案
  • o2o网站建设多少钱昆山专业网站建设
  • c语言自学免费网站网站制作职业
  • 免费刷赞网站推广qq免费有哪些网页设计软件
  • 如何设计网站的首页做海鲜代理在什么网站
  • 网站分析的优劣势苏州网络推广企业
  • 威海网站建设公司施工企业成本核算方法
  • 网站群集约化建设cc域名做门户网站
  • 怎么看一个网站做的好不好北京企业网站推广
  • 网站后台访问权限设置静宁网站建设
  • 网站是什么时候开始的怎样做知道网站
  • 安丘做网站的有那个网站
  • 网站建设佰首选金手指六门户网站 解决方案
  • 怎么可以创建网站十大管理培训课程
  • 网络安全管理系统佛山厂家推广优化
  • 网站建设 外包是什么意思微信小程序低代码开发
  • 网站底部信息用js写法莱芜雪野湖有什么好玩的
  • 青岛高品质网站制作优化快速排名教程
  • 地产项目网站长沙建个网站一般需要多少钱
  • 什么样的网站流量容易做社区网站建设