### 1.8布局
布局是通过特定的方式来容纳排列部件的容器。
* [锚状布局AnchorLayout](https://kivy.org/docs/api-kivy.uix.anchorlayout.html#module-kivy.uix.anchorlayout)
部件能被定位到顶部、底部、左侧、右侧或中心。
* [盒子布局BoxLayout](https://kivy.org/docs/api-kivy.uix.boxlayout.html#module-kivy.uix.boxlayout)
部件被按照垂直或水平方向有序的排列。
* [浮动布局FloatLayout](https://kivy.org/docs/api-kivy.uix.floatlayout.html#module-kivy.uix.floatlayout)
本质上,部件的位置不受限定。
* [相对布局RelativeLayout](https://kivy.org/docs/api-kivy.uix.relativelayout.html#module-kivy.uix.relativelayout)
子部件相对父布局层定位。
* [网格布局GridLayout](https://kivy.org/docs/api-kivy.uix.gridlayout.html#module-kivy.uix.gridlayout)
部件被放置在有行和列定义好的网格内。
* [页面布局PageLayout](https://kivy.org/docs/api-kivy.uix.pagelayout.html#module-kivy.uix.pagelayout)
页面布局被用来创建简单的多页布局,它可以很容易的从一个页面切换到另一个。
* [分散布局ScatterLayout](https://kivy.org/docs/api-kivy.uix.scatterlayout.html#module-kivy.uix.scatterlayout)
分散布局内,部件的定位同相对布局类似,但是它们可以被转换、转动和拉伸。
* [堆栈布局StackLayout](https://kivy.org/docs/api-kivy.uix.stacklayout.html#module-kivy.uix.stacklayout)
部件被按照*lr-tb*(从左到右,再从上到下)或*tb-lr(从上到下,再从左到右)的顺序进行排列。
当你添加一个部件到布局内时,下面的属性可以用来检测部件的尺寸和位置:
* **size_hint**:以百分比的形式定义了一个在父窗口内的部件的大小,其属性值在0.0~1.0之间,例如0.01=1%,1=100%
* **pos_hint**:被用来计算一个部件相对于父窗口的位置。
**size_hint**和**pos_hint**仅在一个部件的尺寸和位置未被设置为None时,才会计算一个部件的尺寸和位置;如果你设置了它们的值为None,那么布局不会再定位和计算部件大小,你可以直接指定其大小和位置。
### 下节预告: 1.9 绘画