这一次我们来讨论一下LinearLayout这种布局方式。相对来说,这个布局方式还比较简单。通过设置它的属性android:orientation来决定其包含的View是以水平方向还是垂直方向摆放。

Constant Value Description
horizontal 0 Defines an horizontal widget.
vertical 1 Defines a vertical widget.

即android:orientation="horizontal"或者android:orientation="vertical"。

如果我们选择的是水平摆放(horizontal),那么LinearLayout所包含的View会一个挨着一个在一行摆放,所有的View都在一行中,就像下图这样:

如果我们选择的是水平摆放(vertical),那么LinearLayout所包含的View会一个挨着一个竖着摆放,每个View占一行,就像下图这样:

从上面两个效果图,可以很清晰看出两种不同的布局方式差异很大。我们一共使用的是一个TextView和四个按钮。正常情况下它们应该都显示出来,但是我们看到水平摆放时,第三个按钮已经挤成一团了,第四个按钮甚至没有显示了。而垂直摆放时,这五个view都显示出来了,每个View各自单独占一行。

padding

接下来,我们再为LinearLayout增加一种新的属性:padding。我对它的解释是边缘补白(留空白),就是让LinearLayout中的内容距离边缘留出一定的空白,这其实是为了美观,好看。现在让我们来看看实际效果,就以上面的五个View为例吧,给LinearLayout增加下面两个属性值:

android:paddingLeft="16dp"android:paddingRight="16dp"

运行效果如下图所示:

可以很明显的看出来,在这些View的左边出现了一些空白,是不是?

下面,我们来看官网上的一个例子:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:paddingLeft="16dp"    android:paddingRight="16dp"    android:orientation="vertical" >    <EditText        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:hint="@string/to" />    <EditText        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:hint="@string/subject" />    <EditText        android:layout_width="fill_parent"        android:layout_height="0dp"        android:layout_weight="1"        android:gravity="top"        android:hint="@string/message" />    <Button        android:layout_width="100dp"        android:layout_height="wrap_content"        android:layout_gravity="right"        android:text="@string/send" /></LinearLayout>

我们先看看它的运行效果是什么样子的:

这个界面有点类似于电子邮件的书写界面。我们细看一下那个XML布局文件的内容。

<LinearLayout>元素的几个属性我们在前面的介绍中,基本上已经扫清了。除了那个fill_parent,暂时我还没有分清它与match_parent的区别,不过这个并不影响我们看其它的View。

在<LinearLayout>中有三个<EditText>和一个<Button>。三个<EditText>中都有两个我们已经熟悉的属性,那就是androdi:layout_width和android:layout_height。而它们的取值出现了一些新的变化。

首先,fill_parent,我们可以理解为LinearLayout允许有多宽,我就扩展为多宽。

更多相关文章

  1. android:windowSoftInputMode属性使用
  2. Android(安卓)相对布局(Relative Layout)
  3. android常用样式
  4. Activity 属性设置参数说明
  5. Android属性动画Property Animation系列二之ObjectAnimator
  6. Android(安卓)自定义属性 attr format取值类型
  7. [android]控件EditText常用属性
  8. Android常用布局组件----重新认识Android(3)
  9. android textview设置字体的行距和字间距

随机推荐

  1. [置顶] android调用.net的webservice的例
  2. android双击返回键退出程序
  3. android 自带的下拉刷新控件,含Demo(SwipeR
  4. Android
  5. android中gridView中点击 item为选中状态
  6. Android打电话,挂电话
  7. android 用Pull 读取XML
  8. Android(安卓)Intent用法详解
  9. Android播放ogg声音文件
  10. Android(安卓)高亮指示层提示