其他布局
相对布局 RelativeLayout
子视图根据其他视频或者父容器继续相对位置进行定位。
| xml属性 | RelativeLayout定义 | 说明 |
|---|---|---|
| layout_toLeftOf | LEFT_OF | 当前视图在指定视图的左边 |
| layout_toRightOf | RIGHT_OF | 当前视图在指定视图的右边 |
| layout_below | BELOW | 当前视图在指定视图的上方 |
| layout_above | ABOVE | 当前视图在指定视图的下方 |
| layout_alignLeft | ALIGN_LEFT | 当前视图在指定视图的左侧对齐 |
| layout_alignRight | ALIGN_RIGHT | 当前视图在指定视图的右侧对齐 |
| layout_alignTop | ALIGN_TOP | 当前视图在指定视图的顶部对齐 |
| layout_alignBottom | ALIGN_BOTTOM | 当前视图在指定视图的底部对齐 |
| layout_centerInParent | CENTER_IN_PARENT | 当前视图在上级视图居中 |
| layout_centerInHorizontal | CENTER_HORIZONTAL | 当前视图在上级视图水平居中 |
| layout_centerInVertical | CENTER_VERTICAL | 当前视图在上级视图垂直居中 |
| layout_alignParentLeft | ALIGN_PARENT_LEFT | 当前视图与上级视图的左侧对齐 |
| layout_alignParentRight | ALIGN_PARENT_RIGHT | 当前视图与上级视图的右侧对齐 |
| layout_alignParentTop | ALIGN_PARENT_TOP | 当前视图与上级视图的顶部对齐 |
| layout_alignParentBottom | ALIGN_PARENT_BOTTOM | 当前视图与上级视图的底部对齐 |
框架布局 FrameLayout
所有子视图View一层一层的堆叠在一起,类似卡片,默认从左上角开始,通过layout_gravity控制子视图的对齐方式
特殊控件
Compoundbutton:抽象的复合按钮,需要进行派生实现,例如CheckBox,RadioButton,Switch等
| 属性 | 作用 |
|---|---|
| checked | 指定勾选状态 |
| button | 指定勾选的图标(不指定则使用默认) |
| 函数 | 作用 |
|---|---|
| setChecked | 设置勾选状态 |
| setButtonDrawable | 设置勾选图形 |
| setOnCheckedChangeListener | 设置勾选状态变化监听器 |
| isChecked | 判断是否勾选 |
复选框CheckBox
最简单的Compoundbutton实现
单选按钮RadioButton
需要使用RadioGroup进行单选组设置,不然多个单选按钮不会组合。
可以通过orientaion指定radio的排列顺序
开关按钮Switch
| xml属性 | Switch设置方法 | 说明 |
|---|---|---|
| textOn | setTextOn | 设置左侧开启时的文本 |
| textOff | setTextOff | 设置左侧关闭时的文本 |
| switchPadding | setSwitchPading | 设置左右两个开关按钮的距离 |
| thumbTextPadding | setThumbTextPadding | 设置文本左右两边的距离。 如果设置了该属性switchPadding性就会失效 |
| thumb | setThumbDrawable/setThumbResouce | 设置开关轨道的背景 |
| track | setTrackDrawable/setTrackResouce | 设置开关标识图标 |
下拉框Spinner
| 属性 | 作用 |
|---|---|
| spinnerMode | 设置下路列表显示模式(dropdown/dialog) |
- dropdown:从空间下方展开一个下拉列表
- dialog:弹窗一个对话框,悬浮在屏幕中央
设置数据的方式
1.代码指定
2.资源绑定
1.在string.xml中设置数据
2.在代码中动态绑定
编辑框EditText
文本编辑框,输入文本信息
| 属性 | 作用 |
|---|---|
| text | 文本内容 |
| textPassword | 文本密码,用*代替内容显示 |
| number | 整数 |
| numberSigned | 带服务号的整数,允许负数 |
| numberDecimal | 带小数点的数字 |
| numberPassword | 数字密码,用*代替内容显示 |
| datetime | 时间日期格式,允许数字,横线,斜杠,空格,冒号 |
| date | 日期格式,运行数字,横线-和斜杠/ |
| time | 时间格式,运行数字和冒号: |
| cursorVisible | 是否显示光标 |
| textCursorDrawable | 光标图像 |
文本监听器接口TextWatcher
这是一个接口,专门用来监听EditText或其他文本输入控件的文本内容的变化接口,需要实现以下回调接口完成文本变化的不同阶段处理。
- beforeTextChanged:在文本改变之前触发
- onTextChanged:在文本改变过程中触发
- afterTextChanged:在文本改变之后触发
自动完成编辑框
实现原理:EditText + TextWatcher+下拉列表Spinner
在输入变化时, onTextChanged调整spinner变化
| xml属性 | 设置方法 | 说明 |
|---|---|---|
| completionHint | setCompletionHint | 设置下拉列表底部的提示文字 |
| completionThreshold | setCompletionHint | 设置至少输入多少个字符才提示显示提示 |
| dropDownHorizontalOffset | setDropDownHorizontalOffset | 设置下拉列表与文本框之间的水平偏移 |
| dropDownVerticalOffset | setDropDownVerticalOffset | 设置下拉列表与文本框之间的垂直偏移 |
Activity基础
生命周期
- 一个Activity代表一个页面
- onCreate函数是入口函数
- 通过startActivity函数进入下一个页面
| 生命周期函数 | 作用 |
|---|---|
| onCreate | 创建页面,加载元素到内存 |
| onStart | 开始页面,显示到屏幕 |
| onResume | 恢复页面,让页面在屏幕互动起来 |
| onPause | 暂停页面,让页面在屏幕的动作停下来 |
| onStop | 停止页面,把页面从屏幕撤下来 |
| onDestroy | 销毁页面,把页面从内存清除掉 |
| onRestart | 重启页面,重新加载内存中的页面数据 |
传递消息Intent
Intent是各个组件之间信息沟通的桥梁,可以在Activity,Service,Broadcast之间沟通。
工作流程:
- Intent需要说明,从哪里来,到哪去,怎么走
- 发送发携带数据,接收方进行解包使用
- 若发起方要求判断接收方处理结果,Intent就需要让接收方传回应答的数据内容
| 组成部分 | 设置方法 | 说明与用途 |
|---|---|---|
| Component | setComponent | 组件,用于指定Intent的来源于目的 |
| Action | setAction | 动作,用于指定intet的操作行为 |
| Data | setData | Uri,用于指定动作要操作的数据路径 |
| Category | addCategory | 类别,用于指定Intent的操作类型 |
| Type | setType | 数据类型,指定Data类型的定义 |
| Extras | putExtras | 扩展信息,用于指定装载的参数信息 |
| Flags | setFlags | 标志位,用于指定Intent的运行模式 |
使用Intent的方式
- 显式使用,直接使用activity的名称
- 隐式使用,不直接指出跳转的activity,通过给出动作让系统匹配相同字符串定义的目标,属于模糊匹配(
相关动作需要权限,须在manifest声明或代码申请)
| 动作常量 | 常量值 | 说明 |
|---|---|---|
| ACTION_MAIN | android.intent.action.MAIN | APP启动的入口 |
| ACTION_VIEW | android.intent.action.VIEW | 显示数据给用户 |
| ACTION_EDIT | android.intent.action.EDIT | 显示可编辑的数据 |
| ACTION_CALL | android.intent.action.CALL | 拨号 |
| ACTION_DIAL | android.intent.action.DIAL | 打电话 |
| ACTION_SEND | android.intent.action.SEND | 发短信 |
| ACTION_ANSWER | android.intent.action.ANSWER | 接电话 |
| ACTION_SEARCH | android.intent.action.SEARCH | 导航栏上的搜索动作(SearchView) |
传递参数
- 向下一个Activity传递参数
- 发送方
接收方 - 向上一个Activity传递参数
发送方:
接收方: