本文主要介绍Android布局XML的一些属性,大家在Android开发过程中肯定会用到布局文件。在这里,我们将详细讲解Layout XML,希望对你有所帮助。
它对快速构建布局界面和提高界面在不同分辨率屏幕上的适应性起着重要作用。下面简单介绍一下Android的布局和研究。
想象一下它的实现。
Android有Layout:FrameLayout,LinearLayout,TableLayout,RelativeLayout,AbsoluteLayout。
为布局放置在布局中的视图的XML属性:
多个布局中的项目共享的XML属性:
(1)layout_width
(2)layout_height
注意:(1)和(2)用于确定布局中放置的视图的宽度和高度:它们的可能值是fill_parent、wrap_content或固定像素值。
(3)layout_marginLeft ---paddingLeft
(4)layout_marginTop ---paddingTop
(5)layout_marginRight ---paddingRight
(6)layout_marginBottom ---paddingBottom
(补)layout_margin ---padding
注:(3)、(4)、(5)、(6)为布局中放置的视图,预计可以在布局或其他视图的边界处。
(7)layout_gravity
注:(7)用于确定视图在布局中的停靠位置。
FrameLayout是最简单的Layout,就只具有这些属性。
LinearLayout还将具有:
(8)layout_weight
注:(8)用于将所有子视图以LinearLayout排列后剩余的空间,根据其layout_weight分配给每个具有该属性的视图。
TableLayout的行TableRow是一个横向的(horizontal)的LinearLayout
RelativeLayout有16个与align相关的XML属性:
(9 )layout_alignParentBottom当前控件的低端与父控件的低端对齐(重合)
(10)layout_alignParentLeft当前控件的左端与父控件的左端对齐(重合)
(11)layout_alignParentRight当前控件的右端与父控件的右端对齐(重合)
(12)layout_alignParentTop当前控件的顶部与父控件的顶部对齐(重合)。
(13)layout_centerHorizontal当前控件位于父控件的水平中间位置(水平方向的中间)。
(14)layout_centerInParent当前控件位于父控件的中间(垂直方向的中间)。
(15)layout_centerVertical当前控件位于父控件的纵向中间(在平面的正中间)。
(16)layout_above使当前控件位于具有给定id的控件之上
(17)layout_below使当前控件位于具有给定id的控件下方
(18)layout_toLeftOf使当前控件位于具有给定id的控件的左侧
(19)layout_toRightOf使当前控件位于具有给定id的控件的右侧
(20)layout_alignBottom使当前控件与给定id控件的底部重合(注意,它可以与给定id控件对齐)
(21)layout_alignLeft使当前控件与具有给定id的控件的左侧重合
(22)layout_alignRight使当前控件与具有给定id的控件的右侧重合
(23)layout_alignTop使当前控件与具有给定id的控件的顶部重合
(24)layout_alignBaseline使当前控件的基线与给定id控件t的基线重合,这主要用于标签或其他包含文本的小部件。
注意:(9)到(24)用于确定RelativeLayout中视图相对于布局或布局中其他视图的位置。
根据Android的文档,Android会对Layou和View嵌套形成的树进行两次遍历,一次调用measure来确定布局或视图的大小;一个是布局调用,用来确定布局或者视图的位置。后来当然是我自己的山寨实现把这两个调用合并在一起了。即Layout在布局之前先测量一次自身,然后递归调用Layout方法进行查看。这个的大小必须确定。然后使用gravity或align属性以确定的大小定位,并使用margin调整位置。
补充:
1.android:paddingLeft与android:layout_marginLeft的区别:
padding margin是边距的含义。关键是要明白什么是相对于什么的边际。
padding是控件内容相对于控件边缘的边距。
layout_margin是控件边缘相对于父空间的边距。
2.android gravity和layout_gravity差异
android:gravity属性是视图内容的限制。例如,按钮上的文本。您可以将文本设置在视图的左侧和右侧。这个属性会这样做。
android:layout_gravity用于设置视图相对于父视图的位置。例如,如果一个按钮在linearlayout中,如果您想将按钮放在左边或右边,您可以通过这个属性来设置它。
这就解释了,我们有的是最外层的布局,然后几个布局都包含在里面。如果我们想让这些布局都垫底,可以在最外层布局的属性中设置androi:gravity="botton",因为重力作用于里面的内容。
以上是Android布局XML属性的整理,以后会补充。谢谢你的支持。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。