`
CshBBrain
  • 浏览: 638022 次
  • 性别: Icon_minigender_1
  • 来自: 成都
博客专栏
B7d9bf34-126e-301f-819e-81f2615b5a2a
开源WebSocket服务...
浏览量:142113
Group-logo
HTML5移动开发
浏览量:135456
社区版块
存档分类
最新评论

Android布局详解之二:LinearLayout

 
阅读更多

转自:http://blog.csdn.net/yihui823/article/details/6702312

 

线性布局。这个布局简单的说,就是所有控件都依次排序,谁也不会覆盖谁。线性布局需要定义一个方向,横向(android:orientation="horizontal")或纵向(android:orientation="vertical")。也就是说,控件要么就并排横向的排列,要么就纵向的笔直排列。

横向排列的示意图如下:layoutpic008

 

笔直排列的示意图如下:layoutpic009

 

因为是并排放置的,所以不会有相互覆盖的情况出现。

我们把上一章的例子,稍加改动,仅仅把FrameLayout改成LinearLayout:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

<TextView 

    android:id="@+id/tv1"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:textSize="50dip"

    android:textColor="#ffffff"

    android:text="第一层"/>

<TextView 

    android:id="@+id/tv2"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:textSize="40dip"

    android:textColor="#ffff00"

    android:layout_toRightOf="@id/tv1"

    android:text="第二层"/>

<TextView 

    android:id="@+id/tv3"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:textSize="30dip"

    android:textColor="#ff00ff"

    android:gravity="right"

    android:text="第三层"/>

<TextView 

    android:id="@+id/tv4"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:textSize="20dip"

    android:textColor="#00ffff"

    android:layout_centerVertical="true"

    android:text="第四层"/>

</LinearLayout>

 

效果如下:layoutpic003

 

改动1

我们换成水平排列来看看。只改一行:

android:orientation="horizontal"

效果如下:

layoutpic004

    

晕了有木有?是不是发现不对劲啊?搞不定了,先出去抽支烟再说。

哦,忘了我不抽烟的,呵呵。其实很简单,我们控件的属性:android:layout_width="fill_parent"这就是说,第一个文本框的宽度就已经充满整个屏幕了,第二个文本框放在第一个文本框的右边,自然就看不到啦。

知道了原因,就改改。把四个文本框的宽度属性都改成:

android:layout_width="wrap_content"

再看看效果:layoutpic005

嗯。因为文字太宽了,第三个文本框为了显示完全,成了多行显示的文本了。第四个文本框直接就消失在屏幕之外了。我们按下“Ctrl + F11”,把虚拟机横过来,就可以看到下图:

layoutpic006

 

改动2

保持横屏不动。我们尝试把第二个文本框改成:

<TextView 

    android:id="@+id/tv2"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:textSize="40dip"

    android:textColor="#ffff00"

    android:layout_below="@id/tv1"

android:text="第二层"/>

我们看看能不能让第二个文本框在第一个文本框的下面。显示结果表示:没变化。

 

改动3

我们尝试把第三个文本框改动下,加上边距:

<TextView 

    android:id="@+id/tv3"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:textSize="30dip"

    android:textColor="#ff00ff"

    android:gravity="right"

    android:layout_margin="20dip"

android:text="第三层"/>

看看有效果没?有的啊:

layoutpic007

 

    第三个文本框与其他控件以及父控件边缘,都保持了一定距离.(20dip不一定是20个像素哦,后面的文章我会仔细描述这个关系。)

 

总结

    线性布局,同样没法直接控制控件的具体位置,以及相对的位置关系。每个控件都依次摆放。不过控件间的间距可以调整,控件也不会相互覆盖。线性布局可以嵌套使用,可以在一个纵向布局中加入一个横向布局。用这种嵌套方式,可以完成一些稍微复杂的页面。不过,当嵌套的情况使用的多了,并且嵌套的层次也多了,就会给维护带来非常大的麻烦。这个时候,就需要用更复杂的布局了。

分享到:
评论

相关推荐

    Android 五大布局方式详解

    线性布局(LinearLayout):按照垂直或者水平方向布局的组件。 帧布局(FrameLayout):组件从屏幕左上方布局组件。 表格布局(TableLayout):按照行列方式布局组件。 相对布局(RelativeLayout):相对其它组件的...

    Android四大布局详解

    详解android开发中的四大布布局的用法和注意点 LinearLayout,RelativeLayout,TableLayout,FrameLayout

    Android UI组件LinearLayout线性布局详解

    LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列(通过android:orientation属性来控制),按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失 ...

    Android开发——布局方式Demo源码

    Android布局详解实例,包含:线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)、表格布局(TableLayout)四大布局方式的demo

    LinearLayout的属性详解

    Android 线性布局属性的详解,由于是Android Studio工程有点大。

    Android布局之LinearLayout线性布局

    LinearLayout是线性布局控件:要么横向排布,要么竖向排布 常用属性: android:gravity————设置的是控件自身上面的内容位置 android:layout_gravity—–设置控件本身相对于父控件的显示位置 android:layout_...

    Android常用布局(FrameLayout、LinearLayout、RelativeLayout)详解

    主要为大家详细介绍了Android常用布局FrameLayout、LinearLayout、RelativeLayout,感兴趣的小伙伴们可以参考一下

    Android核心技术与实例详解 PDF扫描版

    第3章 Android布局管理器 3 1 控件类概述 3 1 1 View类简介 3 1 2 ViewGroup类简介 3 2 线性布局 3 2 1 LinearLayout类简介 3 2 2 线性布局案例 3 3 表格布局 3 3 1 TableLayout类简介 3 3 2 表格布局案例 3 4 相对...

    详解Android TableLayout表格布局

    表格布局的标签是TableLayout,TableLayout继承了LinearLayout。所以它依然是一个线性布局。 前言: 1、TableLayout简介 2、TableLayout行列数的确定 3、TableLayout可设置的属性详解 4、一个包含4个TableLayout布局...

    Android流式布局FlowLayout详解

    现在商城类的APP几乎都要用到流式布局来实现选择属性功能,在我的demo中是通过FlowLayout工具类实现流式布局 使用起来非常简单,十几行代码就可以实现; 在我们的项目中大部分都是单选效果,为了防止用到多选,demo...

    Android抽象布局——include、merge 、ViewStub详解

    在布局优化中,Androi的官方提到了这三种布局、、,并介绍了这三种布局各有的优势,下面也是简单说一下他们的优势,以及怎么使用,记下来权当做笔记。 1、布局重用 标签能够重用布局文件,简单的使用如下: &lt;...

    Android requestFocus详解及实例

    Android requestFocus详解及实例 requestFocus的使用 一句话概括: &lt;requestFocus&gt;: 标签用于指定屏幕内的焦点View。 布局资源文件的根节点可以使用容器控件(如LinearLayout、FrameLayout等),也可以使用非容器...

    Android入门到精通源代码.

    6.2.2 线性布局(LinearLayout) 6.2.3 相对布局(RelativeLayout) 6.2.4 表格布局(TableLayout) 6.2.5 绝对布局(AbsoluteLayout) 6.3 界面中的字体 6.3.1 设置系统字体 6.3.2 引用用户自定义字体 6.4 应用实例...

    Android基础知识详解

    LinearLayout(线性布局) 25 TableLayout(表格布局) 28 RelativeLayout(相对布局) 31 AbsoluteLayout(绝对布局) 34 FrameLayout(框架布局) 34 Toast 36 Notification 38 对话框 42 一、带三个按钮的对话框 42 二、...

    疯狂Android讲义(第2版)源代码 第6章~第9章

    2.2、布局管理(Layout):LinearLayout、TableLayout、FrameLayout、RelativeLayout; 2.3、基本界面组件:TextView、EditText; Button、ImageButton; 9Patch; RadioButton、CheckBox; ToggleButton;AnalogClock...

    Android 控件(button)对齐方法实现详解

    1,android:orientation 布局方向。horizontal是让所有的子元素按水平方向从左到右排列, vertical是让所有的子元素按竖直方向从上到下排列。 2,android:gravity 与 android:layout_gravity的区别android:gravity是...

    Android实例代码

    2.2、布局管理(Layout):LinearLayout、TableLayout、FrameLayout、RelativeLayout; 2.3、基本界面组件:TextView、EditText; Button、ImageButton; 9Patch; RadioButton、CheckBox; ToggleButton;AnalogClock、...

Global site tag (gtag.js) - Google Analytics