Android的XML布局文件中layout

作为一个Android初学者,虽然手头有一本《疯狂Android讲义》,但里面讲的确实比较粗糙。比如今天在敲代码时遇到一个问题,书中的例子在给一个TextView指定大小时既使用了layout_width属性,又使用了width属性,让我很是费解。上网搜了半天,也没有得到一个比较满意的答案,于是决定亲自测试,最终得出以下结论,不知道是否完全正确,先记在这里:

1、width只可以设置为数值,,layout_width既可以设置为数值,也可以设置为wrap_content、match_parent。

2、如果用二者同时设置数值,则View的宽度以layout_width为准,width不起作用。

3、如果layout_width设置成match_parent,同时width设置为数值,则View的宽度以父控件和其它控件共同决定,width不起作用。

4、如果layout_width设置成wrap_content,同时width设置为数值,则View的宽度由二者同时决定:当width大于wrap_content的大小时,由width决定;当width小于wrap_content的大小时,不同控件会有不同表现,由该控件的默认大小与width共同决定(默认大小即添加此控件但控件中不添加内容时的大小,比如添加了Button,但还没有给Button添加Text属性时的大小)。比如Button的默认大小为64*48,,如果width大于64,则结果取width的数值;如果width小于64,则结果取64。再比如TextView的默认大小为0*0,则直接取width的值。总之,在这种情况下控件不会小于其默认的大小(如果想让其小于默认大小,只能改变layout_width的值)。

5、一个控件必须有layout_width属性,否则不可见。width属性不是必须有的。

6、以上规律与layout_width属性和width属性的前后顺序无关。

7、以上规律同样适用于layout_height和height。

只有不断找寻机会的人才会及时把握机会。

Android的XML布局文件中layout

相关文章:

你感兴趣的文章:

标签云: