StudyJamsChina系列之L1课程笔记总结

1B.布局-下:

1B-01-ViewGroups介绍:

  1. 关于View计划过的三点:学会选择合适的View、如何展示及设置VIew属性、如何将多个View进行组合并合理布局(VIewGroups)。

  2. ViewGroup也是一种View,同样有高度、宽度、背景色等属性,不同于TextView和ImageView,内容包含的是文字或图片,ViewGroup内包含的是其他各个View。继而派生出父View和子View的概念。
    其实这个也不难理解,从ViewGroup字面意义上,可以理解为是一个容器,里面contain的是(一个或多个):TextView、ImageView等,其他一些基本Views(控件)。
    PS:不知道为什么,视频中一直讲的是View这个概念,并没有出现控件这个概念。虽说从上到下讲View图谱比较正统,不过感觉要能提到控件和布局(ViewGroup)的话,中文里面对于零基础初学者来说会更好理解一点吧?(个人愚见)


    StudyJamsChina系列之L1课程笔记总结_第1张图片
    ViewGroups.png
  3. 了解View家族关系图谱,漫画形式真是太棒了_so cute!再脑补下中国式教育会怎么讲,反正我估计老师不会给你画小人儿-。-

    StudyJamsChina系列之L1课程笔记总结_第2张图片
    paint.png

  4. 要求:能够明确区分页面上哪些是ViewGroup、都包含哪些View、谁是父View、谁是子View、各个子View是什么关系

  5. 了解ViewGroup是如何包含View的,以及不同ViewGroup摆放子视图的规则,比如:
    LinearLayout线性布局,顾名思义子View只能水平或垂直方向成线性排列。
    RelativeLayout相对布局,相对指的是相对位置(这个相对位置又可以分为:子视图与父布局的相对位置;子视图间的相对位置),比如将子View放到父布局的顶部、底部或中间位置等;或者将ImageView放到父布局左侧,将TextView放到父布局的右侧及父布局的顶部。(这样你就能根据相对位置,确定TextView基本位于整个布局的右上角位置)。

  6. 父布局包含子视图,在XML中是怎么实现的。(注意下各个属性,具体不细说了)

1B-02-认识线性布局(LinearLayout)

  1. 有个问题,译文这块是干啥的,没太明白。查了一下貌似是匹配译文的时间节点?会不会造成理解困扰要不要去掉?有清楚的来说说?


    StudyJamsChina系列之L1课程笔记总结_第3张图片
    whatsthis.jpg
  2. 了解LinearLayout线性布局XML的写法,包括ViewGroup命名空间及各个控件属性的含义和用法。
    命名空间,用来指定属性来自哪个命名空间。

  3. 结合ViewGroup和TextView、ImageView画一个来宾列表布局,过程中留意使用wrap_content和match_parent属性,学会使用layout_weight权重这个属性,并能自己利用权重实现布局效果。

  4. stackoverflow 不多说了,程序员必备。

1B-03-聊一聊相对布局(RelativeLayout):

  1. LinearLayout只能横向或纵向线性布局,局限性较强;RelativeLayout相对布局,则更灵活。
  2. 子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"等属性调节。
  3. 视频中提到的 "讲师批注的代码的链接" 没贴出,github链接如下:
    https://gist.github.com/anonymous/e7eb5ceff9dedfc376eb

1B-04-帮助你更好的布局-设定内外边距

  1. Padding -- 内边框,指控件内容,距离控件的边距。
  2. Margin -- 外边框,指父View和子View之前,子控件距离边父控件的边距。
    这是两个属性,如:
    在一个控件中 为 android:padding = "8dp" 或四个方向分别控制(不列出了);
    在父布局和子控件中,为 android:layout_margin = "8dp" 或 四方向控制。
  3. Material Design 建议padding和margin的属性值,以8dp倍数为宜。
  4. 学会合理使用padding和margin属性,编写出更合理美观的页面。

PS:又帅又逗的Kunal结尾,以及我觉得有必要知道视频最后那位,Google工程师的名字,以表敬意,他叫:KirillO(∩_∩)O

StudyJamsChina系列之L1课程笔记总结_第4张图片
Kunal.png

你可能感兴趣的:(StudyJamsChina系列之L1课程笔记总结)