UI技巧 —— GridLayout & baseline
好吧,GridLayout和baseline没有什么太大的关系。。。之所以把他们放在一起写是因为对他们没有多深的理解,并且他们的用法相对简单,所以就放一起写了。
先说说GridLayout吧。遥想当年,哥去一家知名公司面试时,面试官问过我,”Android中有哪些布局?”。当时哥年少无知,非常笃定地说:RelativeLayout, LinearLayout, FrameLayout还有不常用的TableLayout。想起当年天真的眼神,真是笑了。。当时完全不知道还有GridLayout这等神器
今天在ApiDemos中看到了,觉得真是神器,有些布局用别的layout可能需要嵌套几层,而GridLayout只需要1层orz
大概总结了一下GridLayout的用法吧:
- GridLayout是将整个layout分成横纵几块,而怎么分自然至少需要知道横、纵某一方向的数量,因此
columnCount
或rowCount
属性必不可少 - 光有数量还不行,同时还需要排列的方向,因此
orientation
必不可少 - 接下来就是子元素的属性了,由于GridLayout自己划分方块,所以子元素就没有必要设置宽高了,只需要告诉GridLayout自己想要呆的地方即可,想做到这一点可以设置如下几个属性:
- layout_columnSpan:告诉GridLayout这个子元素想占几列
- layout_gravity:告诉GridLayout这个子元素在所占区域的那一块,上、下、左、右或是填充等等
使用GridLayout必不可少的要素就是这几点,其余的可以边用边查。
再来说说baseline,baseline用起来也比较简单,在RelativeLayout中它的属性是android:layout_alignBaseline
,在LinearLayout中的属性是android:baselineAligned
。除了这两个属性外,一般还需要和android:baselineAlignedChildIndex
配合使用。使用起来比较简单,资料也一大堆,也不再赘述了,总之以后UI的文本想要对齐,记得baseline哦~