Android学习笔记---Layout的一些理解

 

我对Android XML里Layout的一些理解
标签:XML,Layout,父布局,子布局,LinearLayout,RelativeLayout,AbsoluteLayout,FrameLayout,TabLayout
       Android软件的图形用户界面布局(GUI Layout)是很重要的,关系到美观与否以及号称“有史以来最豪华的手机控件”的面子问题~~~这些Layout在Android官网上(http://developer.android.com/guide/topics/ui/layout-objects.html)或者SDK里(本地SDK/docs/guide/topics/ui/layout-objects.html)有很清楚的说明,这里我把我的一些理解写下来以供参考。
       最先接触Android时,打开layout下的main.xml,<?xml version="1.0" encoding="utf-8"?>下面就放着<LinearLayout>...</LinearLayout>。因为是第一印象且使用又很简单,结果让我用LinearLayout用了很长一段时间,才因为LinearLayout达不到某些布局效果被迫学习了其它Layout。现目前为止我用得最多的是RelativeLayout,然后是LinearLayout,再是AbsoluteLayout,再是FrameLayout,最后,TabLayout是最近几天才注意到的~~~哈哈哈。。。
       下面我就大概讲讲我常用的Layout的应该注意的一些属性(常用属性):
       RelativeLayout:关系排布的布局
          这里所谓的“关系”是指RelativeLayout的父布局和子布局之间的关系以及子布局和子布局之间的关系。
          1. android:layout_alignParent**(**表top,bottom,left,right之一):两种取值,"true"和"false",表是否与父布局的上,下,左,右之一接触,可以将某一布局或者控件固定在屏幕上。
          2. 在定义RelativeLayout布局的子布局时,建议(之所以是建议,是指不这么做也行)按照关系依存先后的顺序写XML Layout(或者说是树形的),也就是说,如果A是固定好了的,B是在A的左边,C在B的下面,那么在XML里A、B、C的定义出现顺序应该是A-B-C,不应该是B在A前或者C后等等,如果存在关系依存环,即之前A并没固定,而是A在C的右边,这就没办法了,怎么写也写不出树形的了。。如果不按关系依存先后的顺序写,在模拟器里可能会出现某些控件或者布局无法显示,当然,真机上是不会出现的(至少我手上这台是没出现过的)。
          3. 没了
       LinearLayout:线型排布的布局
          1. android:orientation:两种取值,"horizontal"和"vertical",前者表示子布局以水平线型排布,后者是子布局以竖直线型排布
          2. 没了
        AbsoluteLayout:绝对排布的布局
          1. 只要对屏幕的平面坐标系有个很清楚的概念就可以用得很顺利了。
          2. 没了
       FrameLayout:**排布的布局(我只在用TabHost这个控件时才用了一下,但是给我的感觉是一个很强大的布局,等研究了再补上)
       TabLayout:**排布的布局(我还没用过,等研究了再补上)
       Android提供的Layout可以做出你能想像出来的布局效果,因为这个些Layout都是用XML定义的,所以这些Layout都是树形结构的。对于真机或者模拟器上屏幕上显示出来的任何Layout,我们都可以用Android tools提供的一个工具hierarchyviewer.bat(本地SDK/tools/hierarchyviewer.bat)进行加载查看,它可以把此时的Layout的树状图完全展示出来,并且还有附有属性值。如果把父布局和子布局之间的关系搞清楚了,Android的Layout就算很上手了,当父布局是**Layout的一种时,即定义其子布局之前的关系是**,也就是说,当父布局是RelativeLayout的时候,子布局之间关系就是Relative的,子布局就拥有RelativeLayout的属性,比如说android:layout_alignParentTop等,而并不具备父布局是AbsoluteLayout时子布局才有的android:layout_x属性,可以理解了吧?这是非常重要的,关系到能否做出想要的界面来!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值