Hi ~ kotlin and 喜马拉雅 系列文章之四
Hi ~ kotlin and 喜马拉雅 系列文章之四 1225402401788350464 1201011416564359168
1

Hi~同学们 !

资源引用

那我们开始吧!

本文章对应的视频 和资源 part 9-13

intitle 课程:https://www.bilibili.com/video/av69452769?p=8

iurl 仓库:https://github.com/cooek/Hiximalaya

图片描述

延迟属性 by lazy {}

延迟属性(lazy properties) 是 Kotlin 标准库中的标准委托之一,可以通过 by lazy 来实现。

lazy() 是一个函数,可以接受一个 Lambda 表达式作为参数,第一次调用时会执行 Lambda 表达式,以后调用该属性会返回之前的结果,所以要val 修饰 参数类型不可变。

但是 在RecyclerView的 LinearLayoutManager 线性管理器 并不能使用延迟属性 ,会报++IllegalArgumentException ++异常 原因:是在RecyclerView 中不能复用 这个 需要每次创建出来。

图片描述

四个内联函数 之 apply{} apply函数的返回值是本身,在函数内部,可以任意调用对象的属性或方法或给属性赋值等!图上就是实例 任意类型都有

图片描述

这里我爬了两小时坑!

onCreateView 创建后界面 才能 去初始化控件的一些属性。

如果直接放在onCreateView 里面会被must not be null !难受~

解决办法是: onActivityCreated 方法 才能初始化相关控件的属性!

根本原因是 生命周期函数的执行顺序不同 。所要去的任务也不同!且行且珍惜

图片描述 这张图片来自网络 是fragment对应Activity的生命周期

好久都没写原生安卓了 都快忘记完了!fragment RecyclerView 都是v7包的 现在变成 androidx 包的了。

Cardview

图片描述

我没有使用康师傅的 drawable绘制一个item 背景方案。

CardView 使用方法 就不细说了 套娃 逻辑都都不多啦!

kotlin中 覆写方法的尝试

我在一个抽象类中 使用protected 修饰 的方法 其 实现类 无法被 覆写。

图片描述

由 上图所示 结论! abstract 修饰的 是必须 实现的

protected 修饰的 是无法被覆写的或者实现 --java 就可以 渍渍!我忘了java java也忘了我

图片描述

由图所示 结论!

在 方法前面 加 open 关键字 该方法是可以被覆写的 图片描述

我们可以看到 成功了! 图片描述

这张图片来自网络引用!哈哈 实验诚不欺我!

图片描述

-------》下面成功 onActivityCreated 方法中覆写 initView方法。 图片描述

结论:生命周期害人啊~~~渍渍

由图所示!在实现类中 成功覆写了 onActivityCreated 生命周期函数中 open 修饰符的initView方法

最后附CardView 的效果图

图片描述

MVP 这种开发模式 我理解的没time写!渍渍 下次 下次一定 哈哈

最后

我发现很多语言都有相似之处

flutter 开发的时候 像 圆角 容器边框阴影部分 都是 类似的表现形式!

Container 中的 Decoration 属性中borderRadius: new BorderRadius.all(new Radius.circular(6.0)),

和android 中的Card View cardCornerRadius属性 一样的

哈哈 ~~~~~~~~~~ 被我发现了吧 条条大路通罗马~渍渍

bye!

1201011416564359168
如果你喜欢作者的文章,欢迎打赏鼓励
1225402401788350464
评论
发表评论
  • 拉大锯
    学通了一个,其他了可以平行借鉴。以前有同学问我说,假如安卓不火了怎么办?其实你学精了,转到另外一个主流技术,也是很快的事情。思想是想通的,只是语法规则稍微不一样。就拿UI绘制来说,android有UI绘制,PC也有,iOS也有。都是一样的套路,平台不一样而已。
    2020-02-07 10:48  回复
    1153952789488054272
  • {{item.publishtime|formatDate}}  回复
    {{item.userid}}
    •  回复
      {{item.publishtime|formatDate}}   回复
1225402401788350464 1201011416564359168
欢迎关注作者微信公众号
{{subscriptionQrc.subname}}
推荐文章