Android | Layout中XML文件(三)组件属性

关于Android Layout里使用的一些组件属性。


(1)layout_width与layout_height

        用于指定当前View的宽度与高度,这是不同布局管理器都包含的属性,可以指定固定值,也可以取match_parent与wrap_parent。前者match_parent用于表示当前控件的大小与父布局大小相同,也就是由父布局来决定当前控件的大小;后者wrap_parent用于表示让当前控件大小能够刚好容纳里面填充的内容,即让控件内容决定当前控件大小。一般推荐使用match_parent来作为控件大小,这样可以适配不同分辨率的图片。


(2)layout_margin与padding

        layout_margin用于指定当前View边框的额外空间。通过设置这一属性可以分隔不同View。padding用于指定当前控件中的内容相对于View边框的距离。即如下图所示:

        类似的有如下不同种类的属性:

layout_marginLeftpaddingLeft左边距
layout_marginRightpaddingRight右边距
layout_marginStartpaddingStart视情况同Left或Right
layout_marginEndpaddingEnd视情况同Left或Right
layout_marginBottompaddingBottom下边距
layout_marginToppaddingTop上边距
layout_marginpadding四周边距,包括上下左右

        其中,layout_marginStart与layout_marginEnd,是用于适配RTL(从右到左,Right-to-Left)UI模式的属性,对于不同书写习惯,View的开始有所不同,所以layout_marginStart相当于layout_marginLeft或是layout_marginRight,layout_marginEnd同理。默认的布局模式是从左向右,RTL的UI模式默认关闭。推荐使用Start与End来代替Left与Right。

        Android 4.2中引入了由右到左文字的全面本地支持布局。在本地RTL支持下,您可以为所有用户带来完美的应用体验,不论他们的文字书写方向是由左至右还是由右至左。当用户切换系统语言到由右至左书写方式时,系统提供自动的应用UI布局和所有可视组件的镜像,包括文字元素的显示和输入。您的应用仅需极少改变即可支持RTL布局镜像。如果您的应用支持这一特性,只要在您应用的manifest文件中将所有的”Left/Right”布局属性改变为Start/End”即可。系统就会根据需要处理您的UI了。

(3)相对位置

        用于确定RelativeLayout中的View与其他组件的相对位置。有如下几种不同属性。

layout_above使当前控件位于给出id控件的上方,上边缘对齐,默认父布局左边

layout_below

使当前控件位于给出id控件的下方,下边缘对齐,默认父布局左边
layout_toLeftOf将该控件的右边缘和给定ID的控件的左边缘对齐,默认位于父布局的顶部
layout_toStartOf视情况同Left或Right
layout_toRightOf将该控件的左边缘和给定ID的控件的右边缘对齐,默认位于父布局的顶部
layout_toEndOf视情况同Left或Right
layout_alignParentTop当前控件上端与父控件的上端对齐(重合),默认左上
layout_alignParentBottom 当前控件低端与父控件的低端对齐(重合),默认左下
layout_alignParentLeft当前控件左端与父控件的左端对齐(重合),默认左上
layout_alignParentRight 当前控件右端与父控件的右端对齐(重合),默认右上
layout_alignLeft 使当前控件与给出id控件的左边重合,默认位于父布局的上边
layout_alignStart视情况同Left或Right
layout_alignRight使当前控件与给出id控件的右边重合,默认位于父布局的上边
layout_alignEnd视情况同Left或Right
layout_alignTop  使当前控件与给出id控件的顶部重合,默认位于父布局的左边
layout_alignBottom使当前控件与给出id控件的底部重合,默认位于父布局的左边
layout_alignBaseline该控件的baseline和给定ID的控件的baseline对齐,主要用于Label或者其他包含文本的widgets。
layout_centerHorizontal当前控件位于父控件的横向中间位置(水平方向的中央),默认父布局的上方
layout_centerInParent当前控件位于父控件的纵横向中间位置(水平方向和垂直方向的中央)
layout_centerVertical当前控件位于父控件的纵向中间位置(垂直方向的中央),默认父布局的左边

(4)gravity

        用于设置组件对齐方式。有两种不同属性:android:gravity与android:layout_gravity。前者用于设置当前组件的子组件在组件中的位置,也可以说是指定文字在控件中的对齐方式;后者用于设置自身在父组件中的位置,也可以说是指定控件在布局中的对齐方式。

        可以说名称不以layout_开头的属性作用于组件本身,组件生成时,会调用某个方法按照属性及属性值进行自我配置;而名称以layout_开头的属性作用于组件的父组件,称这些属性为布局参数,它们会告知父布局如何在内部安排自己的子元素。

        包含如下属性:

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值