Activity和UI ——客户端开发学习| 青训营笔记

108 阅读2分钟

image.png

这是我参与「第四届青训营 」笔记创作活动的的第4天

我使用的教材是《第一行代码》,感谢开放的互联网。

本篇内容包含:Activity间传数据,生命周期,启动模式;kotlin一些技巧;UI开发的相关知识


Activity间传数据

发送信息 image.png 接受信息 image.png 接受成功 image.png

生命周期

任务task=许多Activity组成的返回栈back stack

状态:

  • 运行
  • 暂停:可见,但不在最顶层
  • 停止:仍保留相应状态和成员变量
  • 销毁

生存期

onCreat():第一次创建进行加载布局,绑定事件

Start:不可见->可见

Rsume:位于栈顶,准备交互

Pause:启动或恢复另一个Activity,保存当前关键数据

Stop:和上面类似,完全不可见

Destroy:销毁

Restart:停止变位运行(特殊操作

完整生存:creat->destroy

可见:start->stop

前台:resume->pause

onSaveInstanceState(): bundle类型

启动模式

通过注册表中给Activity标签指定android:lauchMode实现

  • standard
  • singleTop:阻止创新一个新的和栈顶相同的页面
  • singleTask:只存在一个实例,如果唤起下层的,上层的都会被销毁
  • singleInstance:单独把这个页面放在一个栈中

一些技巧:

知晓当前是哪个Activity:

创建BaseActivity类

随时随地退出程序:

创建单例类ActivityControllor

启动页面的最佳方法

companion object方法

【kotlin

标准函数

with函数

run函数

apply函数

静态方法

又叫类方法,不需要创建实例就能调用

单例类objrct和普通类class

方法:注解@JvmStatic和顶层

UI开发

常见控件

  • TextView
    • gravity:文字对齐方式
  • Button
  • EditText
    • hint:输入框提示词
    • maxLines:不让输入框太长
  • ImageView
  • ProgressBar
    • visibility: visible, invisible, gone
    • style: 横向进度条/转圈
  • AlertDialog

布局与控件的关系

  • LinearLayout
    • horizental
    • vertical
    • gravity
    • layout_gravity
    • layout_weight
  • RelativeLayout
    • alignParentXxx
    • latouy_above/toRightOf
  • FrameLayout

自定义控件

引入布局

创建自定义控件

ListView

引入图片

RecycleView

横向,纵向,瀑布流

【kotlin

延迟初始化

密封类


andriod:theme主题,在Activity的注册代码中,可成为一个对话框