我对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属性,可以理解了吧?这是非常重要的,关系到能否做出想要的界面来!

更多相关文章

  1. Android(安卓)studio 3.4.0+与gradle版本和插件的对应关系
  2. android 布局的相对性
  3. Android(安卓)使用RadioGroup和RadioButton实现单选效果
  4. android LayoutInflater实例化的方法
  5. 类似于android短信校验码的demo
  6. Android(安卓)图片的读取与写入
  7. Android(安卓)Layout之一:FrameLayout
  8. Android(安卓)五大布局
  9. Android(安卓)CoordinatorLayout+AppBarLayout+ToolBar实现标题

随机推荐

  1. android SDK 2.3安装
  2. android 资源列表-史上最有价值的android
  3. 用python开发android应用(1)
  4. Android中的几种网络请求方式详解 .
  5. android中实现swipe的手势功能及页面拖动
  6. Android中的AndroidManifest.xml文件
  7. android spinner默认样式不支持换行和修
  8. android之字体阴影效果
  9. 我所理解的Android模块化(三)——模块可插
  10. 编译Android最新源码(090508)