快捷键设置
code glan 安装
单Activity+多Fragment:
一个app仅有一个Activity,界面皆是Frament,Activity作为app容器使用。
优点:性能高,速度最快。参考:新版知乎 、google系app
fragment 懒加载
使用setUserVisiable
kotlin笔记
操作符
lateinit
lateinit 延迟初始化 只有var类型 不可为null的类型上使用
1、?:
左边不为空的时候才执行右边,左边为null返回null
2、as? 安全转换
使用as转换时可能会classCastException,使用as?安全转换,不成功返回null
3、:
类型和超类之间的冒号前要有一个空格
实例和类型之间的冒号前不要空格
4、is 类型判断符
检查某个实例是否为某个类型,如果属于后面可以直接改类型不需要显示转换
5、..以及in 范围操作符
检查某个设置是否在指定区间
if(i in 1..10){ //等价于1《=i&&i<=10
````
}
downTo() 区间循环
for(i in 4 downTo 1){
}
step() 任意数量迭代
for(i 1..4 step 2) print(i) //print 13
for(i in 4 downTo 1 step 2) print(i) //print "42"
6、"""ooxx""" 多行输入符
文本原样保留,包括/n/t都会被保留
加载Fragment的时候onCreateView的savedInstanceState: Bundle 要加?不然为非空 出错,华为手机很多错误都不打印出来,换模拟器就能看到错误信息
不能直接使用butterknife,有jack大神写的Kotter Knife不过很久没维护,可以直接使用kotlin的拓展import界面的xml就可以直接使用属性,但是onclick的绑定还不知道怎么弄
在 Kotlin 中有这四个可见性修饰符:private、 protected、 internal 和 public。 如果没有显式指定修饰符的话,默认可见性是 public。
private 意味着只在这个类内部(包含其所有成员)可见;
protected—— 和 private一样 + 在子类中可见。
internal —— 能见到类声明的 本模块内 的任何客户端都可见其 internal 成员;
public —— 能见到类声明的任何客户端都可见其 public 成员。
在Fragment中使用扩展一直返回null,得通过view. name.text 这样找 引入的也是xx.view.* xml中include有layout的话 引入的文件也得是xxx.view.*