Android SDK 开发之定义布局
2010-03-23 04:41:00 来源:WEB开发网ID
任何View对象可能会有一个整数ID和它相关联,来在一棵树中唯一的指定一个View对象。当应用程序被编译时,该id被当做一个整数处理,但是该ID一般是在布局xml里作为一个字符串出现,作为id属性的值。这是一个所有View对象都有的xml属性(由View基类定义)。在xml标签中定义一个 id的语法如下:
android:id="@+id/my_button"
字符串开始的@记号告诉xml解析器应该将后面的部分展开并将其识别为一个ID资源。+表示这是一个新的资源名称,必须将其加入我们的资源集(R.java)。有一些其它的ID资源是由Android框架提供的,当引用它们时,不需要使用+符号,但必须加上Android包名称空间,像这样:
android:id="@android:id/empty"
有了Android包名称空间,我们现在指向的是android.R资源类的对象,而不是本地资源类中的对象。
In order to create views and reference them from the application, a common pattern is to:
为了创建view并从应用程序中引用它们,下面是一个基本的模式:
定义一个view/widget并给它分配一个唯一的ID: android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_button_text"/>
然后创建一个该View对象并从布局中得到它(一般在onCreate()中):Button myButton = (Button) findViewById(R.id.my_button);
为View对象定义id在创建RelativeLayout(相对布局)中是很重要的。在一个相对布局中,兄弟View(位于树结构的同一层的两节点)可以定义它们相互之间的的相对位置,这需要id来标识View对象。
一个ID不需要在整个树中唯一,但它必须在你正在搜索的树的部分中唯一(常常就是整个树),因此最好尽量使用唯一的id。
Layout Parameters
名称为layout_something的xml布局属性定义了一个View在它所在的ViewGroup中的布局参数。
每个ViewGroup类实现一个嵌套类,该类是ViewGroup.LayoutParams的子类。该类包含了定义每个子View大小和位置的属性。如下图所示,父view group定义了子view的布局参数:
注意每个LayoutParams子类有着它自己的设置值的方法。每个子元素必须定义和其父元素相应的LayoutParams,尽管它可以对它自己的子元素定义不同的LayoutParams。
更多精彩
赞助商链接