1B.布局-下:
1B-01-ViewGroups介绍:
关于View计划过的三点:学会选择合适的View、如何展示及设置VIew属性、如何将多个View进行组合并合理布局(VIewGroups)。
-
ViewGroup也是一种View,同样有高度、宽度、背景色等属性,不同于TextView和ImageView,内容包含的是文字或图片,ViewGroup内包含的是其他各个View。继而派生出父View和子View的概念。
其实这个也不难理解,从ViewGroup字面意义上,可以理解为是一个容器,里面contain的是(一个或多个):TextView、ImageView等,其他一些基本Views(控件)。
PS:不知道为什么,视频中一直讲的是View这个概念,并没有出现控件这个概念。虽说从上到下讲View图谱比较正统,不过感觉要能提到控件和布局(ViewGroup)的话,中文里面对于零基础初学者来说会更好理解一点吧?(个人愚见)
-
了解View家族关系图谱,漫画形式真是太棒了_so cute!再脑补下中国式教育会怎么讲,反正我估计老师不会给你画小人儿-。-
要求:能够明确区分页面上哪些是ViewGroup、都包含哪些View、谁是父View、谁是子View、各个子View是什么关系
了解ViewGroup是如何包含View的,以及不同ViewGroup摆放子视图的规则,比如:
LinearLayout线性布局,顾名思义子View只能水平或垂直方向成线性排列。
RelativeLayout相对布局,相对指的是相对位置(这个相对位置又可以分为:子视图与父布局的相对位置;子视图间的相对位置),比如将子View放到父布局的顶部、底部或中间位置等;或者将ImageView放到父布局左侧,将TextView放到父布局的右侧及父布局的顶部。(这样你就能根据相对位置,确定TextView基本位于整个布局的右上角位置)。父布局包含子视图,在XML中是怎么实现的。(注意下各个属性,具体不细说了)
1B-02-认识线性布局(LinearLayout)
-
有个问题,译文这块是干啥的,没太明白。查了一下貌似是匹配译文的时间节点?会不会造成理解困扰要不要去掉?有清楚的来说说?
了解LinearLayout线性布局XML的写法,包括ViewGroup命名空间及各个控件属性的含义和用法。
命名空间,用来指定属性来自哪个命名空间。结合ViewGroup和TextView、ImageView画一个来宾列表布局,过程中留意使用wrap_content和match_parent属性,学会使用layout_weight权重这个属性,并能自己利用权重实现布局效果。
stackoverflow 不多说了,程序员必备。
1B-03-聊一聊相对布局(RelativeLayout):
- LinearLayout只能横向或纵向线性布局,局限性较强;RelativeLayout相对布局,则更灵活。
- 子View相对于父View布局的位置,可通过几个属性(属性值为true/false)来控制:
android:layout_alignParentTop
android:layout_alignParentBottom
android:layout_alignParentLeft
android:layout_alignParentRight
android:layout_CenterHorizontal
android:layout_CenterVertical
一目了然,无需赘述。
注:若不指定子View任何相对位置,则默认在左上角显示。
另:View间的相对位置,通过android:layout_toLeftOf="相对控件ID"等属性调节。 - 视频中提到的 "讲师批注的代码的链接" 没贴出,github链接如下:
https://gist.github.com/anonymous/e7eb5ceff9dedfc376eb
1B-04-帮助你更好的布局-设定内外边距
- Padding -- 内边框,指控件内容,距离控件的边距。
- Margin -- 外边框,指父View和子View之前,子控件距离边父控件的边距。
这是两个属性,如:
在一个控件中 为 android:padding = "8dp" 或四个方向分别控制(不列出了);
在父布局和子控件中,为 android:layout_margin = "8dp" 或 四方向控制。 - Material Design 建议padding和margin的属性值,以8dp倍数为宜。
- 学会合理使用padding和margin属性,编写出更合理美观的页面。
PS:又帅又逗的Kunal结尾,以及我觉得有必要知道视频最后那位,Google工程师的名字,以表敬意,他叫:KirillO(∩_∩)O