• Android Fragment的设计哲学

    解决屏幕适配问题
    服务器君一共花费 18.013 ms 进行了 4 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    Android在3.0中引入了Fragments的概念,主要目的是用在大屏幕设备上 —— 例如平板电脑上,支持更加动态和灵活的UI设计。平板电脑的屏幕要比手机的大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互。Fragment允许这样的一种设计,而不需要你亲自来管理 viewhierarchy的复杂变化。 通过将activity的布局分散到fragment中,你可以在运行时修改activity的外观,并在由activity管理的back stack中保存那些变化。

    例如,一个新闻应用可以在屏幕左侧使用一个fragment来展示一个文章的列表,然后在屏幕右侧使用另一个fragment来展示一篇文章 —— 2个fragment并排显示在相同的一个activity中,并且每一个fragment拥有它自己的一套生命周期回调方法,并且处理它们自己的用户输入事件。 因此,取代使用一个activity来选择一篇文章而另一个activity来阅读文章的方式,用户可以在同一个activity中选择一篇文章并且阅读,如图所示:

    fragment在你的应用中应当是一个模块化和可重用的组件。即,因为fragment定义了它自己的布局,以及通过使用它自己的生命周期回调方法定义了它自己的行为,你可以将fragment包含到多个activity中。这点特别重要,因为这允许你将你的用户体验适配到不同的屏幕尺寸。举个例子,你可能会仅当在屏幕尺寸足够大时,在一个activity中包含多个fragment,并且,当不属于这种情况时,会启动另一个单独的,使用不同fragment的activity。

    继续之前那个新闻的例子 —— 当运行在一个特别大的屏幕时(例如平板电脑),应用可以在Activity A中嵌入2个fragment。然而,在一个正常尺寸的屏幕(例如手机)上,没有足够的空间同时供2个fragment用,因此,Activity A会仅包含文章列表的fragment,而当用户选择一篇文章时,它会启动ActivityB,它包含阅读文章的fragment。因此,应用可以同时支持上图中的2种设计模式。

更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [PHP程序设计] 命令式编程范式 6 个条目
  2. [JavaScript程序设计] Web实时通信技术名词解析 5 个条目
  3. [移动开发] Android加载器Loaders 5 个条目
  4. [软件工程与项目管理] 开始了解Git 5 个条目
  5. [移动开发] Android抽屉导航NavigationDrawer 5 个条目
  6. [Python程序设计] Python数据类型 11 个条目
  7. [Python程序设计] Python HTTP服务器 7 个条目
  8. [移动开发] Layout_weight属性解析 5 个条目
  9. [运维管理] 路由器与交换机 4 个条目
  10. [C语言程序设计] 结构体基本知识 1 个条目
  11. [PHP程序设计] PHP数组的遍历 7 个条目
  12. [智力开发与知识管理] 信息的类型与结构 9 个条目
窗口 -- [博客]