Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 线性布局和相对布局的区别是什么?_Android_Layout - Fatal编程技术网

Android 线性布局和相对布局的区别是什么?

Android 线性布局和相对布局的区别是什么?,android,layout,Android,Layout,线性布局和相对布局的区别是什么?线性布局将每个孩子一个接一个地水平或垂直地排成一行。通过相对布局,您可以为每个子级提供一个LayoutParam,该参数指定了相对于父级或相对于其他子级的确切位置。From 线性布局 LinearLayout将所有子项沿单个方向对齐(垂直或水平),具体取决于定义方向属性的方式 RelativeLayout RelativeLayout允许子视图指定它们相对于父视图或彼此的位置(由ID指定) 以下链接应直观地解释布局如何“直观地”工作 在窗口中添加一些组件,然后修

线性布局和相对布局的区别是什么?

线性布局将每个孩子一个接一个地水平或垂直地排成一行。通过相对布局,您可以为每个子级提供一个LayoutParam,该参数指定了相对于父级或相对于其他子级的确切位置。

From

线性布局

LinearLayout将所有子项沿单个方向对齐(垂直或水平),具体取决于定义方向属性的方式

RelativeLayout

RelativeLayout允许子视图指定它们相对于父视图或彼此的位置(由ID指定)


以下链接应直观地解释布局如何“直观地”工作

在窗口中添加一些组件,然后修改布局,看看会发生什么。这就是我了解每个组件的功能的方式。

线性布局::

  • 在线性布局中,正如名称所示,所有元素都是 以线性方式显示
  • 水平或垂直,并且此行为在中设置 android:orientation是节点的一个属性 线性布局
  • 线性布局将每个孩子一个接一个地排成一行, 水平或垂直


相对布局::

  • 在相对布局中,每个元素都相对其他元素排列自己 元素或父元素
  • 当一个视图挨着另一个视图添加时,它很有用
  • 使用相对布局,可以为每个子级提供一个 指定相对于父项或子项的确切位置 相对于其他孩子
  • 视图在相对布局中是层叠的


优化::查看

视图越少越好

  • 布局的首要目标应该是使用尽可能少的视图。使用的视图越少,应用程序运行的速度就越快。视图嵌套过多会进一步降低应用程序的速度。

  • RelativeLayout层次结构通常比LinearLayout层次结构使用更少的视图和更平坦的树。使用LinearLayout,每次要更改视图的方向时都必须创建新的LinearLayout–创建其他视图和更嵌套的层次。因此,建议您首先对任何具有任何复杂性的布局使用RelativeLayout。这样做很可能会减少视图的数量和视图树的深度。

  • Android中的
    LinearLayout
    功能之一是使用一个名为Weight的属性,应用程序可以使用
    Android:layout\u Weight
    指定该属性。 此属性根据视图在屏幕上应占据的空间大小为视图指定“重要性”值


    另一方面,
    RelativeLayout
    不支持权重,或者换句话说,
    RelativeLayout
    不关注
    android:layout\u-weight
    。这是
    LinearLayout.LayoutParams
    的属性,而不是
    RelativeLayout.LayoutParams

    在相对布局中,布局页面中的所有内容都与示例\u layout.xml页面中的其他内容相关


    在线性布局的情况下,元素以线性格式显示

    android中线性布局和相对布局的区别在于,在线性布局中,“子元素”可以水平或垂直放置,但在相对布局中,子元素可以彼此相对距离放置。这是线性布局和相对布局之间的区别

    区别很简单:在线性布局中,我们以线性方式(一个接一个)排列内容,而相对而言,我们可以将内容放置在屏幕上的任何位置

    =>线性布局以列表形式排列。
    其余部分在功能上相似。

    线性布局

  • 线性布局非常适合对齐行和列中的视图
  • 它们是使用布局权重划分一个位置的好方法,布局权重将根据显示的大小展开或收缩视图
  • 相对布局

  • 相对布局非常适合相对定位元素
  • 例如,将B放在A下方或将C放在左下角
  • 相对布局也使重叠视图变得容易。例如:视图A是重叠视图B

  • RelativeLayout
    LinearLayout
    更灵活,但是如果您对
    LinearLayout
    有适当的了解,您也可以使用它。 对于
    LinearLayout
    每个属性都有一个由开发人员硬编码的重要位置。
    对于
    RelativeLayout
    您可以通过与其他属性关联来更改位置。

    详细说明您的答案Hi Murad。这是一个评论,不是真正的答案。而且,这个问题已经有了很多答案。除非有独特的解决方案向社区展示,否则请尽量避免提供额外的问题答案。最后,AndroidStudio将RelativeLayout归类为“遗留”布局,因此开发人员应该避免使用它,而支持ConstraintLayout,除非他们维护的是过时的遗留项目。亲切的问候。