1.描述
使用LinearLayout的时候也有一个问题,就是当界面比较复杂的时候,需要嵌套多层的
LinearLayout,这样就会降低UI Render的效率(渲染速度),而且如果是listview或者GridView上的
item,效率会更低,另外太多层LinearLayout嵌套会占用更多的系统资源,还有可能引发stackoverflow;
但是如果我们使用RelativeLayout的话,可能仅仅需要一层就可以完成了,以父容器或者兄弟组件+margin
+padding就可以设置组件的显示位置,是比较方便的!当然,也不是绝对的,具体问题具体分析吧!
总结就是:尽量使用RelativeLayout + LinearLayout的weight属性搭配使用吧!
1.本节核心图:
2.父容器定位属性的示意图:
3.根据兄弟组件定位
恩,先说下什么是兄弟组件吧,所谓的兄弟组件就是处于同一层次容器的组件,如图
图中的组件1,2就是兄弟组件了,而组件3与组件1或组件2并不是兄弟组件,所以组件3不能通过
组件1或2来进行定位,比如layout_toleftof = "组件1"这样是会报错的!切记!
最后一句精髓:
①RelativeLayout的参考控件的visibity设置为GONE,那么关联控件呢?
答:RelativeLayout中某个控件因为特别情况需要设置GONE完全隐藏时,会影响与之相关联的
所有控件,这个时候就要用到一个很少用的属性:
android:layout_alignWithParentIfMissing="true"
为关联组件设置了这个属性后,关联控件就会与父级控件对齐!!!
转载于:https://my.oschina.net/quguangle/blog/783391