【安卓-Kotlin】学习笔记

1.控件类

  1. Genymotion虚拟机andplus
  2. drawable-24用来放矢量图
  3. ConstraintLayout布局可以添加百分比辅助线帮助适配
  4. 这个右边是多选然后按照一种方式对齐,也非常好用
  5. 图片引用如R.drawable.apple可用int类型的图片id存放
  6. style:该资源目录用于置放各种主题供ToolBar使用或其他控件使用如传送门
    在这里插入图片描述
  7. 关于那么多Text,第一个是label,Plain Text是全显示的,Password出来是*****,Number只会弹出数字键盘(emmm,所以有些只有填写数字验证码但跳出来全键盘的是程序员偷懒了)
    在这里插入图片描述
  8. 日历
    在这里插入图片描述
  9. 评分星星
    在这里插入图片描述
  10. 屏幕翻转
  11. 横纵模式可以做两套布局 这位up第九课

2. 本地化(适配多语言)

1)来到values文件夹,打开strings.xml,使用open editor
在这里插入图片描述
2)点击小地球,寻找简体中文(Minima做了本地化处理,强大)
在这里插入图片描述
3)添加对应转换语言
在这里插入图片描述
4)对应的文件夹就生成了
在这里插入图片描述

2.5 使用layout_marginStart与End取代Left和Right

在这里插入图片描述

2.6 clipToPadding 和clipChildren

  1. LinearLayout也可以做出下面有超越边界的bottombar(比如宽设为0,四个FrameLayout其权重为一即可)。其属性默认都为true。
    1)clipToPadding 如果为false意思是,view内部的padding区也可以显示view。
    2)clipChildren 如果为false意思是,布局内部的子view即使出了布局的边界,也可以显示出子view界面。
  1. 注意clipToPadding,这个慎重使用,别有嵌套就瞎写(啥地方都来一个),和weight=1和其他布局可能会组合成不明觉厉的效果。
    4)好看的样例
    5)子控件要超出父控件需将父控件的android:clipToPadding、android:clipChildren属性设为false,有时候我们发现父控件设置了这两个属性,子控件还是被裁剪了,这是应该父控件的空间也不够了,也就是父控件被裁剪了。这时候我们就需要把父控件的父控件的属性设为false。哈哈,但不要瞎都加上总结就是,要占哪个控件的空间,就要设置它的属性。
 List<Integer> idlistgroup = Arrays.asList(
            R.id.first,
            R.id.second,
            R.id.third,
            R.id.forth)

2.7接口写法:两种方式

3.ViewModel-jetpack(androidx库的一个组件)中的一个类

  1. ViewModel属于jetpack架构组件的部分
  2. 使界面Activity和Fragment UI本身只控制界面,将代码数据操作交给ViewModel,解耦
  3. 储存Activity的数据,当ac未destory时,重新绘制屏幕时(切换语言,旋转屏幕)数据不会丢失
  4. ViewModelProviders已经弃用改为ViewModelProvider样例
    在这里插入图片描述
  5. 配合LifeData完成动态数据的监听(数据变化自动刷新,结合Room完成数据库的存储。
    在这里插入图片描述

四. 三者关系

1.MVC->MVVM可以将C层中数据的操作抽取给ViewModel完成

在这里插入图片描述

2. 引入LiveData的观察者概念,自动监听数据变动与更新界面,大大简化Controller操作

在这里插入图片描述

3.若再加入DataBinding,则可以完全脱离C和V层的耦合,大大减少对C的依赖度,View改变时就会更加灵活

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_38304672/article/details/106292991