Android布局详解之二:LinearLayout

Android布局详解之二:LinearLayout原创文章,如有转载,请注明出处:http://blog.csdn.net/yihui823/article/details/6702312线性布局。这个布局简单的说,就是所有控件都依次排序,谁也不会覆盖谁。线性布局需要定义一个方向,横向(android:orientation

大家好,又见面了,我是你们的朋友全栈君。

原创文章,如有转载,请注明出处:http://blog.csdn.net/yihui823/article/details/6702312

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

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

 Android布局详解之二:LinearLayout

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

 Android布局详解之二:LinearLayout

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

我们把上一章的例子,稍加改动,仅仅把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

 Android布局详解之二:LinearLayout

改动1

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

android:orientation=”horizontal”

效果如下:

layoutpic004

    Android布局详解之二:LinearLayout

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

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

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

android:layout_width=”wrap_content”

再看看效果:layoutpic005

Android布局详解之二:LinearLayout

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

layoutpic006

 Android布局详解之二:LinearLayout

改动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

Android布局详解之二:LinearLayout

 

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

 

总结

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137220.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • [Unity3D]Unity3D游戏开发之自己主动寻路与Mecanim动画系统的结合「建议收藏」

    [Unity3D]Unity3D游戏开发之自己主动寻路与Mecanim动画系统的结合

    2022年2月2日
  • 计算机基本配置清单表3500,3500元电脑配置清单

    计算机基本配置清单表3500,3500元电脑配置清单3500元电脑配置清单很多游戏发烧友在攒机时搭配了高效能的硬件,可以获得更加畅爽的游戏体验,不过对于普通的用户来说,高性价比的主机就可以满足日常影音及娱乐使用需求,更加亲民的价格也是吸引更多用户的基础,下面我们就为您推荐3500元价位的主机配置,追求性价比的朋友不妨看看。我们首先选择英特尔的i3-4170处理器,这款CPU基于Haswell架构设计,22nm制程,双核心四线程,主频为3.7GHz,…

    2022年7月27日
  • pycharm如何执行高级撤销操作回到历史[通俗易懂]

    pycharm如何执行高级撤销操作回到历史[通俗易懂]今天写代码兴奋过头了,认为别人写得太麻烦,所以在看了这个人是要达成什么样的目标之后,把他的代码直接删了,然后自己重写,到后来发现有这样那样的问题,这个时候想参考原来的代码,可是为时已晚,已经是6,7个小时之前了,姑且不问能否一直使用低级撤销ctrl+z,就算可以,估计也要半个小时才能回到6,7个小时之前吧。这个时候,我悲从中来,悔恨自己在最开始的时候没有弄一个备份。但是,痛定思痛,发现了这一个撤销的高级操作,回退到历史,我以前在使用AndroidStudio的时候也有这个功能,所以试了试pycharm

    2022年8月26日
  • 如何修改opkg 源

    如何修改opkg 源http://downloads.openwrt.org.cn/上面的链接是openwrt国内的源,但是只有适合以下几个系统的源Hacked/18-Jun-201413:58-OpenWrt-DreamBox/01-J

    2022年5月9日
  • 焦点科技怎么老是招人_选错对焦点,错失好照片,你了解相机的对焦吗?

    焦点科技怎么老是招人_选错对焦点,错失好照片,你了解相机的对焦吗?对焦一直是衡量相机的性能的重要参数,在很长的一段时间里,我们因为相机的对焦系统不够强大,而习惯的单点手动设置对焦。而近几年微单相机的对焦快速发展,眼部自动对焦已经比较成熟,而我们的习惯也应该发生改变……选错对焦点,错失好照片多好的构图,妹子笑的多甜,然而就是因为焦点没有对准,成功的变成一张废片。很多人和我抱怨过,什么镜头跑焦,机身跑焦,可是你们有没有从自身找过原因,当真找到正确的焦点,准确合…

    2022年6月6日
  • navicat注册码最新_navicat激活工具

    navicat注册码最新_navicat激活工具navicat10.1.7版本,亲测可用。名:NAVN-LNXG-XHHX-5NOO组织:NAVN-LNXG-XHHX-5NOO注册码:NAVN-LNXG-XHHX-5NOO

    2022年10月13日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号