Android 车载应用开发——「布局 layout 和 View」

96 阅读2分钟

前言

实践是最好的学习方式,技术也如此。

一、布局

  • 基本概念
    • 布局 layout:就是 layout 目录下的一个个 .xml 文件;
  • xml 文件
    • 本质还是 Java 代码;采用 xml 方式进行布局,目的是为了方便开发者进行直观的布局;
    • 层级结构
      • 每一块都是一个节点;
      • 每个节点都是一个视图;
      • 外层的是父节点,里层是子节点;
      • 每个节点都可以声明属性;
    • xml 布局文件中的每个 view 节点,最终也都会被解析成 Java 代码类; 每个节点都是对应一个 Java 类,实现都是通过 Java 代码进行实现;
    • 如何实现将 xml 文件实现我们看到的显示界面?
      • 通过对 xml 进行解析,对 xml 文件从上往下开始遍历解析;每遍历到一个节点都会将其实例化成一个类;
      • 所以本质上是可以自己通过 Java 代码来写一个一个的控件的;

二、实现

  • 新建一个布局页面 layout

  • 注意点
    • 文件命名不能有大写字母;
    • 文件命名要用下划线分割(每个分割都用一个单词来命名,每个变量命名要有意义) ;

三、View

  • 分类

    • 容器类型的 View:例如,LinearLayout
    • 子 View (也可以称为控件):例如,TextViewButton
  • 视图 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