前言
实践是最好的学习方式,技术也如此。
一、布局
- 基本概念
- 布局
layout
:就是layout
目录下的一个个.xml
文件;
- 布局
- xml 文件
- 本质还是 Java 代码;采用 xml 方式进行布局,目的是为了方便开发者进行直观的布局;
- 层级结构
- 每一块都是一个节点;
- 每个节点都是一个视图;
- 外层的是父节点,里层是子节点;
- 每个节点都可以声明属性;
xml
布局文件中的每个view
节点,最终也都会被解析成Java
代码类; 每个节点都是对应一个 Java 类,实现都是通过 Java 代码进行实现;- 如何实现将
xml
文件实现我们看到的显示界面?- 通过对
xml
进行解析,对xml
文件从上往下开始遍历解析;每遍历到一个节点都会将其实例化成一个类; - 所以本质上是可以自己通过
Java
代码来写一个一个的控件的;
- 通过对
二、实现
- 新建一个布局页面 layout
- 注意点
- 文件命名不能有大写字母;
- 文件命名要用下划线分割(每个分割都用一个单词来命名,每个变量命名要有意义) ;
三、View
-
分类
- 容器类型的 View:例如,
LinearLayout
; - 子 View (也可以称为控件):例如,
TextView
、Button
;
- 容器类型的 View:例如,
-
视图 view
- 就是
xml
文件里的每个节点,对应页面上的元素; - 共有属性
layout_width
/layout_height
: layout_width 定义控件的宽度, layout_height 定义控件的高度;text
id
gravity
:表明控件本身的放置位置;layout_gravity
:表明控件本身在父布局中的位置;Background
- 就是
-
布局容器
-
RelativeLayout
(相对布局)- 通过定义视图之间的相对关系来确定它们的位置;
- 定位视图的方式
- 相对位置;
- 对齐方式;
- 边距;
- 视图的位置是相对于其他视图或父容器而言的;
- 可以通过属性来指定视图之间的相对位置/将视图居中对齐/设置视图的边距和相对位置;
-
LinearLayout
(线性布局)- 它将视图按照
水平
(android:orientation="horizontal"
)或垂直
(android:orientation="vertical"
)方向进行线性排列; - 默认情况下,视图按照它们在 XML 文件中的顺序进行排列,但可以使用
android:layout_gravity
属性来设置视图在布局中的对齐方式;
- 它将视图按照
-
-
View 的继承关系
- android 中所有的 view 都继承自 View;
-
view 与 ViewGroup 的关系
ViewGroup
可以包含子view
或者子ViewGroup
;- 区分:里面能包含
子view
或者子ViewGroup
的就是ViewGroup
,不能的就是view
;