美文网首页
【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