Skip to content

12android:layout_gravity和android:gravity的使用区别

android:gravity: 这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性, android:gravity="left"和android:text=“提交”,这时Button上的文字“提交”将会位于Button的左部。 android:layout_gravity: 这个是针对控件本身而言,用来控制该控件在包含该控件的父控件中的位置。同样,当我们在Button按钮控件中设置android:layout_gravity="left"属性时,表示该Button按钮将位于界面的左部。

常见的布局有哪些

在 Android 应用程序中,布局是在屏幕上放置 UI 元素的一种方式,通常使用 XML 或者代码方式实现。下面介绍五种 Android 中常见的布局: LinearLayout:线性布局 LinearLayout 是最常见的布局之一,可以让应用中的 UI 元素沿着水平或垂直方向排列。该布局中的所有 UI 元素会依次排列,根据指定的重力值,可以让元素在水平或垂直方向上对齐。例如,可以将两个或多个按钮放置在一起,或者将文本框放置在其中。 RelativeLayout:相对布局 RelativeLayout 允许我们在 UI 元素之间定义相对位置,并让元素根据它们之间的位置关系排列。例如,可以将一些 UI 元素放置在屏幕的左上角,并使它们相互靠近。RelativeLayout 还提供了一些属性,如 alignParentTop/Bottom/Left/Right,用于将元素定位在相对于父元素的位置。 FrameLayout:帧布局 FrameLayout 是另一种常见的布局类型,用于在屏幕上叠放不同的 UI 元素。在 FrameLayout 中,所有元素以图层的方式显示,也就是后添加的元素会覆盖先添加的元素。例如,可以在屏幕上添加一个按钮,并将一个图片放置在按钮上面。 TableLayout:表格布局 TableLayout 是一个灵活的布局,它可以让 UI 元素按照表格的形式排列。在 TableLayout 中,可以使用多个 TableRow 元素,在每个单元格中放置其他 UI 元素。例如,可以在 TableLayout 中放置一个表格,其中包含多个文本框或按钮。比如日历的实现 ConstraintLayout:约束布局 约束布局是 Android Studio 中提供的相对布局的升级版本,它可以更灵活地约束各个 UI 元素之间的位置关系,可以以多种方式创建布局。约束布局基于 ConstraintLayout 元素,可以在该元素中添加其他元素,并使用约束条件将它们固定在屏幕上的特定位置。例如,可以使用约束布局将两个文本框放在一起,并使它们距离屏幕顶部相等。

相对布局和线性布局区别

相对布局和线性布局在绘制时有一些差异。 相对布局是基于相对位置的布局,可以在子元素之间定义一些相对位置,而不需要遵循固定的位置顺序。相对布局会根据子元素之间的相对位置动态地确定每个子元素应该出现的位置,这与屏幕的分辨率和大小没有关系。这使得相对布局非常灵活,可以在 UI 中创建任何类型和形状的元素。 线性布局则是基于一个方向(水平或垂直)的布局,可以让子元素在该方向上平均排列。线性布局**按照子元素添加的顺序绘制,**所以子元素的位置在布局中是固定的。当子元素的数目很少时,线性布局会很容易处理,并且可以快速生成适合于不同屏幕分辨率的 UI。 具体而言,相对布局和线性布局之间的绘制差异在于: 绘制顺序和布局方式:线性布局按照子元素添加的顺序进行绘制,相对布局根据子元素之间的相对位置来绘制。 对于不同的方向:线性布局仅按一个方向进行排列,而相对布局不受任何方向限制。 处理方式:相对布局的处理方式较复杂,因为它需要确定根据其他元素的位置来确定自己的位置。而线性布局的处理方式较简单,更容易适应不同的屏幕分辨率。