美文网首页程序员
Android_XML布局

Android_XML布局

作者: 书虫大王X | 来源:发表于2019-09-27 10:30 被阅读0次

1.XML布局优点:

在XML文件中设计UI可以更好地将应用的外观与控制应用行为的代码隔离,每次修改或调整界面布局只需要修改XML文件的代码而不是修改源码和重新编译。

2.常见的XML布局:

  • RelativeLayout(相对布局):
    能够指定子对象彼此之间的相对位置或子对象与父对象的相对位置,自由度是最大的一种布局。(使用的频率相对较高)
    注意:margin和padding的使用容易混淆:
    margin是边缘(外边距),指该控件距离父控件或其他控件的边距;padding是填充(内边距),指该控件内部内容
  • TableLayout(表格布局):
    显示滚动的单列列表,在手机设置基本就是使用的这种布局。TableLayout有点像一个表格或是矩阵。在布局中加入TableRow,它的属性是horizontal,所以每个TableRow只能横放。它里面的每个控件的高都是一样的。
  • LinearLayout( 线性布局):
    线性布局分两种。一种是水平布局,一种是垂直布局。
属性 作用
orientation 控价的布局方式(有水平布局和竖直布局)
gravity 当前元素的子元素相对它的对齐方式
layout_gravity 当前元素相对它的父元素的对齐方式
  • FrameLayout(帧布局):
    这个布局很简单,就是控件一个挨一个在左上角罗列。帧布局的大小由控件中最大的子控件决定,如果控件的大小一样大的话,那么同一时刻就只能看到最上面的那个组件,后续添加的控件会覆盖前一个。

    帧布局
  • AbsoluteLayout(绝对布局):
    绝对布局比较容易使用,以左上方为原点建立坐标系。每个控件用layout_x和layout_y表示位置。

  • ConstraintLayout(约束布局):

  1. 简介:已经取代RelativeLayout成了创建空Activity的默认布局,非常强大。布局原理:根据布局中的其他元素或视图, 确定View在屏幕中的位置, 受到三类约束, 即其他视图, 父容器(parent), 基准线(Guideline)。
    举个例子:


    效果图

    代码:

    <TextView
        android:id="@+id/TextView1"
        ...
        android:text="TextView1" />

    <TextView
        android:id="@+id/TextView2"
        ...
        app:layout_constraintLeft_toRightOf="@+id/TextView1" />

    <TextView
        android:id="@+id/TextView3"
        ...
        app:layout_constraintTop_toBottomOf="@+id/TextView1" />
  1. group:
    可以把多个控件归为一组,便于管理,例:
    <TextView
        android:id="@+id/TextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/TextView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintLeft_toRightOf="@+id/TextView1" />

    <TextView
        android:id="@+id/TextView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintLeft_toRightOf="@id/TextView2" />
效果图

现在有3个并排的TextView,用Group把TextView1和TextView3归为一组,再设置这组控件的可见性,如下所示:

   <android.support.constraint.Group
        android:id="@+id/group"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="invisible"
        app:constraint_referenced_ids="TextView1,TextView3" />
效果图
  • 补充:布局还可以嵌套使用,比如RelativeLayout中可以嵌套一个或多个RelativeLayout,同样也可以嵌套其他的布局。

3.xml 配置参数:

  • 属性值为true或false:
    android:layout_centerHrizontal 水平居中
    android:layout_centerVertical 垂直居中
    android:layout_centerInparent 相对于父元素完全居中
    android:layout_alignParentBottom 贴紧父元素的下边缘
    android:layout_alignParentLeft 贴紧父元素的左边缘
    android:layout_alignParentRight 贴紧父元素的右边缘
    android:layout_alignParentTop 贴紧父元素的上边缘
    android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物

  • 属性值必须为id的引用名:
    android:layout_below 在某元素的下方
    android:layout_above 在某元素的的上方
    android:layout_toLeftOf 在某元素的左边
    android:layout_toRightOf 在某元素的右边
    android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
    android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
    android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
    android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐

  • 属性值为具体的像素值,如30dip,40px:
    android:layout_marginBottom 离某元素底边缘的距离
    android:layout_marginLeft 离某元素左边缘的距离
    android:layout_marginRight 离某元素右边缘的距离
    android:layout_marginTop 离某元素上边缘的距离

  • constraint类:
    layout_constraintLeft_toLeftOf 一个元素的左边缘与另一个元素左边缘重合
    layout_constraintLeft_toRightOf 一个元素的左边缘与另一个元素右边缘重合
    layout_constraintRight_toLeftOf 一个元素的右边缘与另一个元素左边缘重合
    layout_constraintRight_toRightOf 一个元素的右边缘与另一个元素右边缘重合
    layout_constraintTop_toTopOf 一个元素的顶部与另一个元素顶部重合
    layout_constraintTop_toBottomOf 一个元素的顶部与另一个元素底部重合
    layout_constraintBottom_toTopOf 一个元素的底部与另一个元素顶部重合
    layout_constraintBottom_toBottomOf 一个元素的底部与另一个元素底部重合
    layout_constraintBaseline_toBaselineOf 一个元素的底部与另一个元素底部重合
    layout_constraintStart_toEndOf 一个元素的左边缘与另一个元素右边缘重合
    layout_constraintStart_toStartOf 一个元素的左边缘与另一个元素左边缘重合
    layout_constraintEnd_toStartOf 一个元素的右边缘与另一个元素左边缘重合
    layout_constraintEnd_toEndOf 一个元素的右边缘与另一个元素右边缘重合
    layout_constraintVertical _weight 一个元素高度占父视图高度的比例
    layout_constraintHorizontal_weight 一个元素宽度占父视图宽度的比例 ,例:

app:layout_constraintHorizontal_weight="1"
//这个视图宽度占父视图宽度的1/n(n为子视图的个数)

layout_constraintVertical _weight 一个元素高度占父视图高度的比例

注意:这些属性的值即可以是parent,也可以是某个view的id。

4. XML布局常见属性:

XML布局常见属性

相关文章

  • Android_XML布局

    1.XML布局优点: 在XML文件中设计UI可以更好地将应用的外观与控制应用行为的代码隔离,每次修改或调整界面布局...

  • css经典布局总结

    布局类型 浮动布局 流式布局 定位布局 flex布局 grid布局 布局详解 1.浮动布局。 浮动布局是利用flo...

  • 布局小结

    布局方式 静态布局 浮动布局 定位布局 自适应布局 流式布局(百分比布局) 响应式布局 弹性布局 悬挂布局 圣杯布...

  • 常用的五大布局

    常用的五大布局(线性布局,相对布局,帧布局,表格布局,绝对布局) 1,线性布局 LinearLayout ...

  • 实现三栏布局的六种方式

    六种布局方式总结:圣杯布局、双飞翼布局、Flex布局、绝对定位布局、表格布局、网格布局。 圣杯布局 圣杯布局是指布...

  • CSS3开发常用核心技能

    基础网页布局 布局分类 一列布局 两列布局 三列布局 多列布局 一列布局: 二列布局: 三列布局: ⚠️ midd...

  • 移动端页面布局

    七大布局:流线布局、等比缩放拓展布局、分栏布局、流动布局、重复布局、固定布局1.流线布局流线布局指在界面中的内容元...

  • 前端网站5种布局

    前端基本布局分大致5种,table布局,float 布局,absolute布局,flexbox布局,grid布局。...

  • 2019-08-25

    布局 说法一 浮动布局 绝对定位布局 Flex布局 Table-cell表格布局 网格布局 说法二 静态布局 流式...

  • flex布局的几种典型布局方式

    flex布局的典型布局方式有哪些? 网格布局 固定底栏布局 圣杯布局 输入框布局 悬挂布局 网格布局 最简单的网格...

网友评论

    本文标题:Android_XML布局

    本文链接:https://www.haomeiwen.com/subject/tipnectx.html