Android UI

  可能最近事情比较琐碎的原因,对Android UI的理解一直不甚透彻,特别是Acitivity、Fragment等类之间的关系。反复看了看《Android 4 高级编程》——之所以用“看”而不是“研读”,是因为发现自己总是在一知半解中着急的浏览,而没有深入研究——终于有了一丁丁点体会,突然觉得前些时日的理解也许有错误或不当之处。

  也许学习就是在不断纠正错误中取得收获的——我是这样安慰自己的。

  Application类创建实例后,一般来讲就要创建Activity类(或继承类)。Activity创建后就好比我们在手机屏幕上挂上了“白板”。

  记得老师上学的时候,都会把黑板分成左右两部分来书写。“白板”也是如此,不过需要通过布局来实现。在前面的Hello World应用中,我们更多的是利用了资源类:

  在FullscreenActivity类的定义中,OnCreate()事件中将activity_fullscreen布局加入到Activity:setContentView(R.layout.activity_fullscreen);

  还有些时候,老师觉得黑板分成左右两部分还不够,于是,在其中一半又画了一道竖线,将黑板分为了3部分。这其实就是布局嵌套布局的问题。不管如何,手机屏的大小就像黑板的大小一般都是固定的,所以,布局不宜嵌套太多,否则即便不考虑Android处理效率的问题,也应该考虑美观的问题。

  Android定义了一些常用的布局类,如FrameLayout、LinearLayout、RelativeLayout和GridLayout。FrameLayout就像把其中的元素叠罗汉。LinearLayout中的元素属于挨个排(或横或纵)。RelativeLayout中元素环环相扣。GridLayout布局怎么看怎么像HTML中的<TABLE>。需要注意的是GridLayout是Android 3.0(API Level 11)之后才引入的布局。所以,创建布局的时候,要根据准备发布应用的最小应用平台决定是否应用GridLayout。《Android 4 高级编程》建议,可能的情况下应该优先使用GridLayout,而不是用嵌套来实现。

  简单总结一下:

  1、Application的OnCreate()中创建Activity,Activity的OnCreate()中创建自定义的布局;

  2、由于我们的Helloworld应用没有动画,所以,布局也相对简单,利用xml定义布局中包含的元素及显示内容就可以实现一个简单应用。这可以理解为静态应用。

  3、如果想动态生成内容,就必须学会利用Fragments。Fragment可以添加在布局之内。一个布局内可以添加多个Fragment。当然,每个子布局的那一部分也可以添加Fragment。

  4、Fragments就像我们建动画程序需要建N多帧动画一样,建立多个Fragment,相当于建立了多个动画帧,需要哪一帧,我们就将Fragment动态加入到布局中,而不需要时就把visibility设为"gone“即可(靠,为什么不是none呢?)这在菜单切换时很有用。想让手机返回键起作用,实现返回上一屏,那么看看Fragment Transaction会很有用。

>>待续

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值