安卓入门
马克墨菲著
处理容器
容器倒入一个部件的集合(和可能的子容器)形成特定的结构。如果你想要一个在左边和右边的域标签的表格,你需要创建一个容器。如果你想确定和取消表单上的其他按钮或者旁边的一个,移动到屏幕的右边,你需要一个容器。只是从一个纯粹的XML视图,如果你有多个部件(除了单选按钮组件在RadioGroup),每一个容器必须有一个对应根元素将小部件放进去。
大多数GUI工具包都有一些概念的布局管理,经常组织到容器。在Java /Swing中,假如你的布局管理器如BoxLayout和容器,使用它们(例如,盒)。一些工具包,如XUL和Flex,坚持严格的盒模型,认为任何所需的布局可以通过正确的组合实现套盒。Android中LinearLayout,还提供了一个盒模型。此外,Android系统支持一系列的容器,提供不同的布局规则。
在本章中,我们将看看一些常用的容器:LinearLayout(盒模型),RelativeLayout(基于规则的模型),TableLayout(网格模型),和滚动视图,容器设计,协助实现滚动容器。
Thinking Linearly
线性思维
LinearLayout是一盒模型,其中部件或子容器排成一列或行,一个接一个。这些工程以类似的方式在Java /Swing中的FlowLayout,Flex和XUL中的 VBox和HBox工作。
Flex和XUL使用盒子作为他们的主要单元的布局。如果你愿意,你可以使用LinearLayout以大致相同的方式,避开一些其他的容器。为了得到你想要的视觉表现,主要是识别箱巢的属性和哪些盒子应该有,如与其他框对齐。
LinearLayout的概念和性质
配置一个LinearLayout,你控制五个主要方面:定位,填充模型,重量,重力,和垫。
定位
方向指示LinearLayout表示一行或一列。只是在安卓中:在XML布局LinearLayout元素到你的属性,设置值为水平或垂直排列。
定位可以在运行时修改调用在LinearLayout中的setorientation(),其供给水平或垂直。
填充模型
让我们想象一排小部件,如一对单选按钮。这些部件有一个基于文本的自然”的大小。他们联合的大小可能不与Android设备的屏幕宽度完全匹配,特别是因为屏幕有各种尺寸。然后你怎么解决剩余空间。
在一个LinearLayout中所有部件必须提供Android:layout_width和Android:layout_height性质来帮助解决这个问题。这些属性的值有三种类型:
A你可以提供一个具体的尺寸,如125px指示部件应该是125像素。
B你可以提供wrap_content,这意味着部件应填补它的自然空间,除非是太大,在这种情况下,Android可以用换行来适应。
C可以提供fill_parent,这意味着部件应填满所有可用的空间,在其封闭的容器,在所有其他部件的处理。
后者是最常见的两种类型,他们是独立的大小的屏幕,让您查看Android的调整拟合的可用空间。
权重
但是如果你有两个小部件,应该把可用的空闲空间吗?例如,假设您有两个在一列多行字段,和你想让他们拿起剩下的空间列毕竟其他小部件已分配空间。做这项工作,除了设置android:layout_width(行)或android:layout_height fill_parent(列),你还必须设置android:layout_weight。
android:layout_weight 属性显示的比例应该去的自由空间小部件。例如,如果您将android:layout_weight相同的一对小部件(如非零值。1),它们之间的自由空间将平分秋色。如果你将它设置为一个部件1和2的其他部件,第二个小部件将使用自由空间,第一个小部件的两倍。一个小部件的重量是默认为零。
另一个模式使用重量是如果你想分配大小百分比的基础上。使用这种技术,水平布局:
A设置所有android:layout_width值0小部件的布局。
B设置android:layout_weight值所需的百分比大小每个小部件的布局。
C确保那些权重增加到100。
重力
默认情况下,所有在左,top-aligned LinearLayout。所以,如果你创建一排小部件通过水平LinearLayout,该行将开始刷新屏幕的左侧。如果这不是你想要的,您需要指定一个重力值。使用android:layout_gravity部件(或称setGravity()在运行时在小部件的Java对象),您可以告诉小部件和它的容器如何排列在屏幕上。
列的小部件,常见的重力值,center_horizontal,适合左对齐
安卓入门(翻译) 来自淘豆网m.daumloan.com转载请标明出处.