StudyJams的学习活动昨晚顺利进行了第二次,内容主要是承接上一次的View讲了ViewGroup顺便介绍了LinearLayout和RelativeLayout——即线性布局和相对布局。

ViewGroup

在上一课最后讲述GooglePlay的布局时曾经提过ViewGroup的概念,果然这次的视频上来就介绍了这玩意儿:

  • ViewGroup也是View
  • ViewGroup可以嵌套ViewGroup

布局

1B上主要介绍了LinearLayout和RelativeLayout两大类布局模式

线性布局——LinearLayout

顾名思义,这种布局模式下,ViewGroup中所有的元素必须排成一直线——水平或垂直方向皆可
控制水平和垂直的是orientation属性,对应的值是

  • vertical——垂直
  • horizontal——水平

同时在线性布局中,所有子View都具有一个十分重要的属性——layout_weight
使用该属性可以更好的分配View的使用空间,避免布局在较大尺寸的屏幕上出现太严重的布局空间浪费

  • layout_weight属性受布局方向影响对子View的影响属性有所不同,当垂直布局时weight影响子View的高度,水平布局时影响子View的宽度
  • 使用layout_weight属性时,对应的layout_width/height应当设置为0(具体的原因暂时没确认,因为似乎设置为wrap_content也不影响)
  • layout_weight指当前View在所属ViewGroup中的权重,第一条说过这个权重会影响对应的width/heigth属性,某种程度上类似按比例分配对应高宽的属性,计算方式

当前View的width/height = (LinearLayout的width/height-指定width/height的View)*(当前View的weight值 / LinearLayout内所有View的weight值的和)

相对布局——RelativeLayout

这种布局应当是应用场景更多的,在创建一个视图布局时通常也是默认布局方式,其中相对有两层含义

  • 子View可以相对RelativeLayout的上下左右边界来布局
  • 子View可以相对另一个子View的上下左右位置来布局

当子View之间进行相对布局时需要通过如下属性给子View命名——定义View的ID

android:id = "@+id/xxxxx"

其中“+”是第一次声明ID时必须的,后续使用时不需要该符号,xxxxx即具体的View的ID,当其他View要相对该View进行布局时可通过该ID进行调用,如下

android:layout_above="@id/xxxxx"

其它

寻找解决问题的方法

写程序经常会遇到各种问题,尤其是作为一个新手,因此遇到问题以后寻找解决方法十分重要,其实在1A的课程中就不断在引导我们通过Google搜索关键词来寻找一些常见问题的答案,这次在1B的课上更是在LinearLayout中介绍weight属性时给了一个更明显的例子,在需要寻找如何在线性布局中对子View进行平均分布的布局时,视频中进行了下图所示的搜索操作

在课上小伙伴们一起总结的重点是

  • 尽可能详细的描述遇到的问题,总结关键词
  • 设想可能的解决方案,同样总结关键词
  • 在搜索引擎中搜索上述总结出来的关键词
  • 用英文在Google上进行搜索效果尤佳
  • 牢牢记住stackoverflow的域名,一定不会后悔

padding和margin

这两个属性在概念上有些类似通常意义上的内外边距的概念(实际上还是有些区别,仅仅是类似),通过有效设置这两个属性可以有效辅助排版,让布局更加美观合理(视频推荐采用通常为8dp的倍数)

  • padding设置的是当前这个View所包含的content元素与View上下左右边界的距离
  • margin设置的是当前这个View的边界与父级ViewGroup上下左右边界的距离


最后小马老师还给我们先提前介绍了一下Android Studio建立工程的方法,考虑到下一次课PS1应该也会说到这块内容,我想留点儿内容下回写笔记这次就不多展开了~

Comments
Write a Comment

Tags

生活   碎碎念   思考   电影   Android   工作   ubuntu   记录   牢骚   游戏   StudyJam   产品   感慨   α-d0βe   代理   知乎   目标   手机阅读   产品设计   外卖   设计   学习   回忆   翻译   漫画   读书   吐槽   腾讯   kindle   小妇人   抱怨   分析   做事   输入法   游戏制作   诺基亚   阅读   零号线   iPhone   MAC   教育   GameMaker   兔年   模拟器   英语学习   流水   swift   刷机   旋转屏幕   SIM卡   随笔   背单词   小男人   需求   生命   平板   gnome   ipad   扯淡   fcitx   爱情   孩子   电子阅读   dezire z   老游戏   SSH   编程   GameMaker Studio 2   乔的男孩们   降级   光棍节   愤怒的小鸟   翻页效果   BUT   淘宝   touch   手机   apple   总结   正义   gtd   博客   皮克斯   公开课   反思   gSTM   2011   2010   播放器   WEB   服务   浮躁   暖暖内含光   修理   家庭   九把刀   imei   游泳   奥尔科特   宜家   storyboard   GMS手札   移动阅读   态度   dbus   平凡之路   协作   object-c   拓词   露易莎梅奥尔科特   操作   泄露   但是   无线网卡   白箱   蔡康永   快压   盗梦空间   mindmap   朴树   饥饿游戏   断网   iOS5   switchy   韩寒   成功   水位开关   知识整理   计划   文档   体验   物流   点子   360   myentunnel   动画   后会无期   xoom   触摸板   动漫   懒   将爱情进行到底   安达充   HTC   命运   校准   年度总结   随感   东野圭吾   惰性   HD6770   自私   周国平   tomboy   娱乐   plink   扇贝   洗衣机   情怀   触摸屏   麦当劳   patreon   人人   小米   evernote   chrome   职场   信息安全   营销   进度显示   爱发电   安全   公平   闲扯   twitter   锤子   DND   手机上网   Oculus   mars   流量   责任   N9   godaddy   tx2000   s-off   Lion   Nintendo Switch   心智图   电子辞典   用户资料   软团   自省   blogilo   魔法空间   垂直服务   生日   root   ubuntuone   电子书   塞尔达   笔记   老罗   肯德基   rhythmbox   win7   UCD   互联网   虚拟实境   废话   拖延   多看   显卡驱动   装13   用户   跨平台   angry bird   局域网   桌游   wireless   串号   联通   锤子科技   评论   失控   妥协   产品经理   百阅   众筹   wine