美文网首页
【1-7】Android开发布局详解

【1-7】Android开发布局详解

作者: Xxxxx面 | 来源:发表于2015-11-23 17:19 被阅读136次

一、思维导图

Android开发布局详解

二、重述知识


上面这些是比较“大型”的控件,之后的课程会讲到。

这节就讲了五大布局,不过其实常用的就三种:

  • LinearLayout
  • RelativeLayout
  • FrameLayout

三、具体应用场景

不需要细说了,那些控件都要放在布局上,太常用了。

四、扩展理解

1. LinearLayout (线性布局)

  • LinearLayout会将它的子控件排列为一行或者一列,默认是水平方向;
  • 在XML文件中,用android:orientation="horizontal"或者android:orientation="vertical"这两个属性来设置按水平还是垂直排列;
  • 有“weight”和“weightSum”的概念;
  • 要么横向,要么纵向。

附:官方概述&官方向导

2. RelativeLayout (相对布局)

  • RelativeLayout 是通过内部子元素指定它们相对于其他元素或父元素相对位置(通过ID指定)关系来构造用户界面的布局方式。
  • 就是可以相对于“别人”、“空间”或“空间某地”来定位

特别要注意,使用相对布局要避免一种叫"circular dependency"的情况!
大概就是,你RelativeLayout的尺寸跟里面子元素的位置,不要有相互依赖的关系。
例如,你不能把RelativeLayout的高设为WRAP_CONTENT,
然后它里面又有个子元素的位置设为ALIGN_PARENT_BOTTOM。

这就会产生类似下面的情况:
RelativeLayout领导:“活动场地定多大啊?”
Button小弟们:“听领导的,我坐最后一排就行啦。”
RelativeLayout领导:“我还是看你们的意思定吧。”
……
最后就是“你眼望我眼”,两边都不合适。

这个"circular dependency"是我遇到的一个坑,可能会另外写一篇博文来说说。

另外还要注意,在 version 17和更低版本,RelativeLayout会被一个关于测量尺寸的bug影响,导致被测量子元素值错误的情况。
version 18和以上版本已经修复这个问题。大概是这个情况,因为我自己还没遇过,不展开了,具体看RelativeLayout官网的介绍吧。

六、相关面试题

待补充。

七、脑内记忆

待补充。

八、参考资料

  1. Android绝招一——利用weight属性居中View
  2. The use of layout_weight with Android layouts
  3. XML namespace in Android

相关文章

网友评论

      本文标题:【1-7】Android开发布局详解

      本文链接:https://www.haomeiwen.com/subject/sselhttx.html