6.4.1. 控件的常用属性

优质
小牛编辑
128浏览
2023-12-01

6.4.1.控件的常用属性

一般来讲,这就是最常用的几个属性:

layout_height和layout_width

表示控件在父元素中占据的空间。在这里可以明确给出像素、英寸等单位的值,但这样是不提倡的。你的程序需要运行在不同的设备上,它们屏幕的尺寸会有不同,因此绝对大小不如相对大小。提倡的是,在这里给出fill_parent或者wrap_content,分别表示占据父元素的所有可用空间,或者仅占据自己全部显示所需要的最小空间。留意,自API level 8开始,fill_parent改为match_parent。

layout_weight

表示布局的权重,0或者1。比如消息框对应的EditText控件的默认布局权重是0,设定的布局高度(layout height)是fill_parent,而且它在发送按钮之前先一步申请空间,这样发送按钮就被挤出屏幕之外而无法显示了。为了让发送按钮显示出来,我们可以把消息框的布局权重设为1,这样它依然会在高度上占据尽可能多的空间,不过如果还有其它控件,就会为它们让出合适的空间,使之可以显示。

layout_gravity

指明这一控件在布局中所在的水平位置或垂直位置,可选的值为top、center、left等。若把某控件的宽度设为fill_parent,再给它一个center的水平位置显然是没有意义的。不过把控件的宽度设为wrap_content,再给它一个center的layout_gravity就令它居中。需要注意的是这个属性与下面gravity的区别。

gravity

指定控件的内容在这个控件中的位置。人们很容易将它与layout_gravity相混淆,实际上它们的应用场景不同。比如,我们作为标题的TextView的宽度设为fill_parent,那么设置它的layout_gravity就没有用处,不过将其gravity设为center可以让它的文字居中。

text

不是所有控件都有这个属性,但它十分常见,比如Button、EditText和TextView。它指定控件显示的文本。但是在这里直接输入文本是不被提倡的,因为这样就限制了程序的语言环境。好的做法是将所有的文本放到string.xml资源文件里,按照@string/titleStatusUpdate这样的形式引用它。

id

id是控件在layout资源文件中的唯一标识符。id对控件而言不是强制的,我也建议尽量少用id以减少重名的机会。但是在Java中需要引用控件的话,id是必须的。Id的格式为: @+id/someName,其中someName就是对应widget的名称。我个人的命名习惯是在名字前面加上类型,比如@+id/buttonUpdateStatus这样。