`
ch_kexin
  • 浏览: 899331 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

android:layout

 
阅读更多
布局的介绍:
1、在4.0以前版本中一共有五种布局,都是ViewGroup的子类。分别是AbsoluteLayout、RelativeLayout、LinearLayout、FrameLayout、TableLayout。而TableLayout是LinearLayout的子类。(中文分别是:绝对布局、相对布局、线性布局、帧布局、表格布局)。
2、在2.2操作系统中将AbsoluteLayout过期。而目前TableLayout也逐渐少用。
3、在4.0之后又新增GridLayout。(GridLayout最经典的案例是计算器界面)
总之,Android中一共有六种布局。目前推荐使用RelativeLayout、LinearLayout、GridLayout三种布局。

LinearLayout:
(一)、概念:线性布局控制其中的控件或组件横向或纵向排列。不线性布局布局中,每一行或每一列只能放一个控件。并且线性布局不会换行。当控件排列到窗体边缘,后面的控件就被隐藏,而不会显示出来。
线性布局的默认方向是水平方向(Horizontal)。vertical

(二)、LinearLayout的常用属性:
1.android:orientation     定义布局内控件或组件的排列方式
可选项:vertical 、 horizontal

2.android:layout_width    定义控件的宽度
可选项:fill_parent / match_parent/ wrap_content/绝对数值
备注:fill_parent / match_parent的效果完全一致,都是填充整个父控件。但是自2.2版本开始推荐使用match_parent 。wrap_content指的是该控件的宽度正好包裹内容物。

3.android:layout_height    定义控件的高度
可选项:fill_parent / match_parent/ wrap_content/绝对数值
备注:fill_parent / match_parent的效果完全一致,都是高度填充整个父控件。wrap_content指的是该控件的高度正好包裹内容物。

4.android:id   设置控件的id。这样就可以在R.java中自动生成相应的值,在程序中通过findViewById就可以调用。
设置id的格式为:android:id = "@+id/id的名字"

5.android:background     设置控件的背景颜色或背景图片
例如:android:background="#ffffff"
          android:background="@drawable/图片名称"
【备注:】
颜色有RGB颜色格式和ARGB格式。RGB是红绿蓝三原色。而ARGB是带alpha的三原色,即有透明度的三原色。
#FFFFFF 代表白色
#000000  黑色
#FFFFFFFF   完全不透明
#00FFFFFF   完全透明
#88FFFFFF   半透明

6.android:layout_weight    设置控件的权重。即各控件在水平或者垂直方向上平均分配。
备注:如果是水平方向设置权重,要将android:layout_width设置为0dp,如果是垂直方向上使用权重,要将android:layout_height设置为0dp。否则权重容易受到高度或宽度的干扰而出现偏差。

7.android:gravity   该属性用来控制该View的内容物的位置。
如果该属性是定义在布局节点中,则该布局中所有控件的位置都受到这个属性的控制。
如果该属性出现在Button、TextView、EditText等控件中,则用来控制这些控件上的文字的位置。
可选项有:top、bottom、left、right、center_vertical、fill_vertical 、 center、fill等等。
【备注:】本属性与android:layout_gravity不同。

8.android:layout_gravity   该属性用于设置控件相对于容器的对齐方式。
可选项有:top、bottom、left、right、center_vertical、center_horizontal 、fill_vertical 、 center、fill等等。
这些可选项中不是适用于每一种布局。在垂直线性布局中,android:gravity为bottom不起作用;而水平线性布局中,android:gravity为right不起作用。
【备注:】而本属性是android:layout_gravity属性,与 android:gravity 属性不同。
(三)、LinearLayout的特有属性:【重新归纳:去除公共属性后的特有属性】
1、android:orientation    布局管理器内组件的排列方式
2、android:gravity    设置布局管理器内组件的对齐方式
(四)、 LinearLayout 子元素的特有属性:
1、android:layout_weight    子元素在 LinearLayout 中所占的权重
2、android:layout_gravity     子元素在 LinearLayout 中的对齐方式

RelativeLayout:
(一)、概念:指按着控件之间的相对位置来进行布局。
(二)、RelativeLayout特有属性:
1、android:gravity    设置布局容器内子控件的对齐方式    
2、android:ignoreGravity    设置布局管理器内哪个控件不受gravity属性的影响
(三)、RelativeLayout子元素的特有属性:LayoutParams
    A、第一组:指兄弟控件之间的相对位置。该组属性的值是另一个控件的id。
layout_toRightOf      该控件在哪个控件的右侧
layout_toLeftOf        该控件在哪个控件的左侧
layout_above           该控件在哪个控件的上侧
layout_below            该控件在哪个控件的下侧
    B、第二组:指兄弟控件之间的对齐关系。该组属性的值是另一个控件的id。
layout_alignRight      该控件与哪个控件的右对齐
layout_alignLeft        该控件与哪个控件的左对齐
layout_alignTop        该控件与哪个控件的顶对齐
layout_alignBottom   该控件与哪个控件的底对齐
    C、第三组:指控件与父布局之间的对齐关系。该组属性的值是true或者false。
layout_alignParentRight               该控件与父布局控件的右对齐吗?
layout_alignParentLeft                 该控件与父布局控件的左对齐吗?
layout_alignParentTop                 该控件与父布局控件的顶端对齐吗?
layout_alignParentBottom            该控件与父布局控件的底部对齐吗?
layout_centerInParent                  该控件位于父布局控件的中心位置吗?
layout_centerVertical                    该控件位于父布局控件的垂直中心位置吗?
layout_centerHorizontal                该控件位于父布局控件的水平中心位置吗?

GridLayout:网格布局
(一)、GridLayout布局属性:
1、android:alignmentMode
属性说明:设置布局的对齐模式。可以取以下值:
alignBounds -- 对齐子视图边界。
alignMargins -- 对齐子视图边距。
2、android:columnCount
属性说明:GridLayout的最大列数
3、android:rowCount
属性说明:GridLayout的最大行数
4、android:orientation
属性说明:GridLayout中子元素的布局方向。有以下取值:
horizontal -- 水平布局。
vertical -- 竖直布局。
5、android:columnOrderPreserved
属性说明: 设置该网格布局是否保留列序号。默认是true。
6、android:rowOrderPreserved
属性说明: 设置该网格布局是否保留行序号。默认是true。
7、android:useDefaultMargins
属性说明: 设置GridLayout使用默认的边距。默认值是false。
(二)、GridLayout子元素的属性:
1、android:layout_column
属性说明: 显示该控件的列。例如,android:layout_column="0",表示在第1列显示该控件;android:layout_column="1",表示在第2列显示该控件。
2、android:layout_row
属性说明: 该控件所在行。例如,android:layout_row="0",表示在第1行显示该控件;android:layout_row="1",表示在第2行显示该控件。它和 android:layout_column类似。
3、android:layout_columnSpan
属性说明: 列合并。即该控件所占的列数。例如,android:layout_columnSpan="2",表示该控件占2列。
 
4、android:layout_rowSpan
属性说明: 行合并。即该控件所占的行数。例如,android:layout_rowSpan="2",表示该控件占2行。
5、android:layout_gravity
属性说明:该控件的布局方式。选项值:
top                      -- 控件置于容器顶部,不改变控件的大小。
bottom                -- 控件置于容器底部,不改变控件的大小。
left                     -- 控件置于容器左边,不改变控件的大小。
right                   -- 控件置于容器右边,不改变控件的大小。
center_vertical     -- 控件置于容器竖直方向中间,不改变控件的大小。
fill_vertical          -- 如果需要,则往竖直方向延伸该控件。
center_horizontal -- 控件置于容器水平方向中间,不改变控件的大小。
fill_horizontal      -- 如果需要,则往水平方向延伸该控件。
center                -- 控件置于容器中间,不改变控件的大小。
fill                     -- 如果需要,则往水平、竖直方向延伸该控件。
clip_vertical        -- 垂直剪切,剪切的方向基于该控件的top/bottom布局属性。若该控件的gravity是竖直的:若它的gravity是top的话,则剪切该控件的底部;若该控件的gravity是bottom的,则剪切该控件的顶部。
clip_horizontal     -- 水平剪切,剪切的方向基于该控件的left/right布局属性。若该控件的gravity是水平的:若它的gravity是left的话,则剪切该控件的右边;若该控件的gravity是  right的,则剪切该控件的左边。
start                  -- 控件置于容器的起始处,不改变控件的大小。
end                   -- 控件置于容器的结束处,不改变控件的大小。
分享到:
评论

相关推荐

    Android 五种Layout 布局

    在Android开发中,布局(Layout)是构建用户界面的基础元素,它定义了屏幕上各个组件的排列方式和相互关系。本文将深入探讨Android的五种主要布局:LinearLayout、RelativeLayout、FrameLayout、GridLayout以及...

    android 各种Layout用到的一些重要的属性

    ### Android各种Layout的重要属性 #### 一、第一类:布尔属性值 这一类属性值主要用来控制视图在容器中的位置关系,常见的属性包括: - **`android:layout_centerHorizontal`**:设置此属性为 `true` 可以使视图...

    2011.10.13(4)——— android android:layout_weight

    在Android开发中,`android:layout_weight`是一个非常重要的属性,尤其在布局管理器中,如LinearLayout。这个属性主要用于在有限的空间内分配组件的大小,根据权重比例来决定每个子视图占据的屏幕空间。本篇文章将...

    android:layout_gravity和android:gravity的区别

    1.首先来看看Android:layout_gravity和android:gravity的使用区别。 android:gravity: 这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性, android...

    Android Layout样式布局

    ### Android Layout样式布局详解 #### 一、概述 在Android应用开发中,界面设计是非常重要的一环,而界面设计的核心就是布局(Layout)。布局决定了应用界面的结构与外观,是用户体验好坏的重要因素之一。本文将...

    androidlayout-marginBottom的值为负数.docx

    在Android布局设计中,`android:layout_margin`属性用于设置View与周围元素的边距,包括`android:layout_marginTop`、`android:layout_marginBottom`、`android:layout_marginLeft`和`android:layout_marginRight`。...

    android layout

    ### Android Layout 概述 在Android开发中,`Layout`起着至关重要的作用,它用于组织和排列用户界面中的各种视图(View)组件。通过使用不同的布局方式,开发者可以创建出灵活且适应不同屏幕尺寸的应用界面。本文将...

    Android的Layout完全介绍

    Android的Layout完全介绍 在Android开发中,Layout是构建用户界面的关键组成部分,用于组织和定位应用中的各种View组件。本文将详细介绍几种主要的Layout类型及其特点。 1. FrameLayout FrameLayout是最基础的布局...

    ANDROID:控件属性(很全).

    * ID 引用属性:android:layout_below、android:layout_above、android:layout_toLeftOf、android:layout_toRightOf、android:layout_alignTop、android:layout_alignLeft、android:layout_alignBottom、android:...

    android-layout中的一些对齐属性介绍

    #### `android:layout_alignBaseline`, `android:layout_alignBottom`, `android:layout_alignLeft`, `android:layout_alignRight`, `android:layout_alignTop` 这一系列属性用于精确控制视图之间的对齐方式,包括...

    Android:解决RadioGroup中RadioButton的图片自定义及每项间隔距离一样

    如果遇到这种情况,可以使用`android:layout_marginRight`(对于垂直方向是`android:layout_marginBottom`)来替代,手动为每个RadioButton设置间距。 总结一下,本文主要介绍了如何在Android中自定义RadioGroup中...

    Android设置虚线、圆角、渐变

    android:layout_height="wrap_content" android:background="@drawable/line_style" /> ``` ### 二、圆角(Rounded Corners) 同样,我们可以通过`Shape Drawable`来实现圆角效果。创建一个名为`rounded_corner....

    Android控件大全以及各布局控件的使用方式

    android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:textSize="20sp" android:textColor="#ff0000"/> ``` ##### 2. Button(按钮控件) - **...

    android:anroidUI编程4(中文)

    android:layout_height="fill_parent"> <!-- 第一层图片 --> android:id="@+id/myImageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="0px" ...

    Android控件大全以及各布局空间的使用方式

    - `android:layout_width` 和 `android:layout_height`: 设置布局的宽度和高度,可以使用 `fill_parent` 或 `match_parent` 让布局填充整个父容器,`wrap_content` 让布局根据内容自动调整大小,也可以直接指定像素...

    Android学习指南之Layout 布局--千锋培训

    【Android学习指南之Layout 布局】 在Android开发中,布局(Layout)是构建用户界面的核心元素,它负责组织和定位应用中的各个视图组件。本指南将着重讲解三种主要的布局类型:LinearLayout、RelativeLayout和...

    Android_layout.rar_android_android 布局_layout

    在Android开发中,布局(Layout)是构建用户界面的核心元素,它定义了应用程序屏幕上元素的排列方式和相互关系。Android提供了多种布局管理器,如LinearLayout、RelativeLayout、ConstraintLayout等,每种布局都有其...

    Android开发—使用ActivityGroup来切换Activity和Layout

    Android 开发—使用 ActivityGroup 来切换 Activity 和 Layout Android 开发中,经常需要在不同的 Activity 之间进行切换,并且显示不同的ContentView。为了实现这个功能,我们可以使用 ActivityGroup 来管理不同...

    Android:ListView的嵌套和一行显示多个

    android:layout_width="match_parent" android:layout_height="match_parent"> android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent" /> </androidx....

Global site tag (gtag.js) - Google Analytics