Android Layout XML属性

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

Layout对于迅速的搭建界面和提高界面在不同分辨率的屏幕上的适应性具有很大的作用。这里简要介绍Android的Layout和研究一下它的实现。

Android有Layout:FrameLayout,LinearLayout,TableLayout,RelativeLayout,AbsoluteLayout。

放入Layout中进行排布的View的XML属性:

1.几种Layout中Item所共有的XML属性

  • (1)layout_width
  • (2)layout_height

注: (1)和(2)用来确定放入Layout中的View的宽度和高度:它们的可能取值为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)是放入Layout中的View期望它能够和Layout的边界或者其他View之间能够相距一段距离。

  • (7)layout_gravity

注:(7)用来确定View在Layout中的停靠位置。

FrameLayout是最简单的Layout,就只具有这些属性。

LinearLayout还会有:

  • (8)layout_weight

注: (8)用于在LinearLayout中把所有子View排布之后的剩余空间按照它们的layout_weight分配给各个拥有这个属性的View。

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    使当前控件的BaseLine与给出id控件t的BaseLine重合,这个主要用于Label或者其他包含文本的widgets。

 注:(9)到(24)用来确定RelativeLayout中的View相对于Layout或者Layout中的其他View的位置

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

根据Android的文档,Android会对Layou和View嵌套组成的这棵树进行2次遍历,一次是measure调用,用来确定 Layout或者View的大小;一次是layout调用,用来确定Layout或者view的位置。当然后来我自己的山寨实现把这2次调用合并到了一 起。那就是Layout在排布之前都对自己进行measure一次,然后对View递归调用Layout方法。这样子的大小肯定是确定了的。然后用确定了 的大小来使用gravity或者align属性来定位,使用margin来调整位置。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

补充:

1.android:paddingLeft与android:layout_marginLeft的区别:

      padding margin都是边距的含义,关键问题得明白是什么相对什么的边距.
      padding是控件的内容相对控件的边缘的边距.
      layout_margin是控件边缘相对父空间的边距.

2.android gravity和layout_gravity区别

  android:gravity 属性是对该view 内容的限定.比如一个button 上面的text.  你可以设置该text 在view的靠左,靠右等位置.该属性就干了这个.
      android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左靠右等位置就可以通过该属性设置.

这样就解释了,有什么我们弄个最外布局,然后里面包了几个布局,如果要使这几个布局都靠底,就可以在最外布局的属性里设置androi:gravity="botton"  因为gravity是对里面的内容起作用.

Android 空格跟占位符 一、XML使用:   == 普通的英文半角空格   ==   ==   == no-break space (普通的英文半角空格但不换行)   == 中文全角空格 (一个中文宽度)   ==   == en空格 (半个中文宽度)   ==   == em空格 (一个中文宽度)   == 四 阅读详情

相关推荐

Android中xml表中出现[NBSP]和下划波浪线

问题1 如下图: 问题2 如下图: 解决 问题1是因为出现单引号时,要用转义字符\,加上去后红色波浪线错误提示消失 问题2是因为使用了中文的符号冒号":"

Black_Cat_33的博客 1783

android解析xml nbsp报错,xml配置的用法汇总

android:interpolator="@android:anim/accelerate_interpolator">&nbsp简介:代码片段,代码分享,PHP代码分享,Java代码分享,Ruby代码分享,Python代码分享,HTML代码分享,CSS代码分享,SQL代码分享,JavaScript代码分享简介:代码片段,代码分享,PHP代码分享,Java代码分享,Ruby代码分享...

weixin_33835155的博客 310

android xml TextView属性

android:ems 设置TextView的宽度为N个字符的宽度。 android:maxems 设置TextView的宽度为最长为N个字符的宽度。与ems同时使用时覆盖ems选项。 android:minems 设置TextView的宽度为最短为N个字符的宽度。与ems同时使用时覆盖ems选项。 android:maxLength 限制输入字符数。如设置为5,那么仅可以输入5个汉字/数字/英文

carry的博客 2694

android解析xml nbsp报错,XML文件中函数的动态路径是怎么用的啊?

翻翻过去那场雪一、在Android应用中的XML文件来源1、本地xml文件本地XML文件可以放在应用根目录assets文件夹、res/xml、res/raw、SDcard卡、应用的data目录等;除res/xml可直接通过getXml(int id)获取XML文档,返回一个解析器对象(XmlResourceParer:XmlResourceParer是XmlPullParser的子类),其它位置情...

weixin_31855625的博客 262

android解析xml nbsp报错,Android Studio 3 AndroidManifest.xml报错error: unknown eleme

Android Studio 3 AndroidManifest.xml报错error: unknown elemeAndroidStudio3默认启动了AAPT2,AAPT2增强了对AndroidManifest.xml的检查。先前版本的AAPT会忽略AndroidManifest.xml错误的元素内嵌,或者只是给出警告,并不会报错。示例package="com.example.myname...

weixin_35976688的博客 840

(转)Android XML解析与生成

在Android平台上可以使用Simple API for XML(SAX) 、 Document Object Model(DOM)和Android附带的pull解析器解析XML文件。   下面是本例子要解析的XML文件: 文件名称:itcast.xml <?xml version="1.0" encoding="UTF-8"?> 李明 30 李向梅 25 例子定义了一个ja

飞鸽传说的博客 391

XML&nbsp;Parsing&nbsp;Error:&nbsp;XML&nbsp;or&nbsp;text&nbsp;d…

今天在做XML解析的时候,总是给我报 XML Parsing Error: XML or text declaration not at start of entity 的错误,后来查了下讲大概意思是android中解析的时候xml文件格式问题。 在文件的最前端 即<?xml version="1.0" encoding="UTF-8"?>前面不能有空格。 修改即好。

路漫漫其修远兮,吾将上下而求索 1353

android&nbsp;AndroidManifest.xml&nbsp;多个…

可以的 ,一个程序是可以有多个入口的。如果你设置两个,并且category都是android.intent.category.LAUNCHER,那么你就会发现你的手机中就会出现两个快捷方式,也就是两个程序的入口,但是进去以后打开的第一个页不同。但是category设置成其他的话,就会出现一个。 <activity ...

weixin_34234823的博客 267

Android&nbsp;xml资源文件中@、@an…

http://greatverve.cnblogs.com/archive/2011/12/27/Android-xml.html 一.@代表引用资源 1.引用自定义资源。格式:@[package:]type/name android:text="@string/hello"   2.引用系统资源。格式:@android:type/name     android:textColo

飞鸽传说的博客 353

Android strings.xml中添加空格的方法

string name="box_no_txt">箱号:  string>   表示一个空格

wolfking0608的博客 6383

Android xml中转义字符的使用方法

一:若是需要使用TextView来显示一句话的话,可以这样来做: 例1: 中文内容:借入TUSD数量*TUSD价格=质押ETH数量*ETH价格*50%  英文内容:TUSD Amount * TUSD Price = ETH Amount * ETH Price * 50% 很明显,中文和英文都是用的同一个引用string,但是中文和英文的显示又是不一样顺序的: 比如:在中文显示的时候是...

shenggaofei的博客 8309

如何解决XML:到未定义实体 'nbsp'的引用。

&在xml中是特殊符号,&nbsp;会出问题。解决:1.在xml中加入一段代码,如下: <!DOCTYPE your_root_name [ <!ENTITY nbsp ""> <!ENTITY copy "©"> <!ENTITY reg "®"> <!ENTITY trade "™"> <!ENTITY mdash ...

weixin_34055787的博客 1418

Android解析XML(大全)

在Android平台上可以使用Simple API for XML(SAX) 、 Document Object Model(DOM)和Android附带的pull解析器解析XML文件。 下面是本例子要解析的XML文件:itcast.xml xml version="1.0" encoding="UTF-8"?> persons>   person id="23">     name>

SundyTu的博客 749

如何在XML中使用nbsp

http://www.douban.com/note/243216814/?type=like 1. 如果是放在     例如:                               &nbsp;&nbsp;元芳, 你怎么看?         ]>      2. 如果是放在XML属性中, 那就不能直接使用了     否则得到错误一枚: The entity "nbsp

longzhongren的专栏 3391

android string.xml里的空格字符

在string.xml定义字符串的时候经常要用到空格, 直接用键盘敲的话不知道是几个空格,经常看错了,导致误删。 如果用 来替代空格的话,就好很多。 另外使用%1$s,%1$d可以在一个字符串里定义多个统配字符。

tao_zi7890的专栏 4万+

Android程序安装后应用图标不显示

原文地址:http://trinea.iteye.com/blog/1463296 本文主要介绍android应用程序安装后图标不显示的几个可能原因。   自己写的程序突然安装后图标不见了,在应用程序安装中能找到,但是桌面上就是没有图标,启动只能从最近列表中其中。。一般这种情况只会在服务类程序和测试程序中出现,因为不需要图标。   google无果,自己二分调试解决了,并测试了其他网友提供的其他

android-星空 4万+
上一篇: JAVA汉字字符串按拼音排序
下一篇: imageview添加图片代码——内存和相…
AndroidObject
博客等级 码龄16年 15粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值