Android Fragment---设计理念

来源:互联网 发布:淘宝大拿韩代是正品吗 编辑:程序博客网 时间:2024/04/30 05:46
Android在Android3.0中引入了Fragment,主要用于支持在大屏幕上进行更多的动态和灵活的UI设计,如平板电脑。因为平板电脑的屏幕比手持设备要大,因此有更多的空间用于UI组件的组合和互换。Fragment允许不需要你来管理对View层树的复杂管理的设计方式。通过把一个Activity的布局分解成不同的Fragment,你就能够在运行时编辑Activity的外观,并且在被Activity管理的回退堆栈中保留这些改变。

例如,一个新闻相关的应用在左侧能够使用一个Fragment来显示文章列表,在右侧使用另一个Fragment来显示一篇文章---这两个Fragment并列的显示在同一个Activity中,并且每个Fragment有它自己的生命周期回调方法和处理它们自己的用户输入事件的集合。这样,就不会使用一个Activity来选择文章,而在另一个Activity中阅读文章,用户可以像下图1介绍的那样(平板电脑布局),能够在同一个Activity中选择并预读文章。

pic1

图1  在平板电脑中怎样把Fragment定义的两个UI模块组合到一个Activity,而在手持设备中又是如何分开例子。

你应该把每个Fragment设计成一个模块和可复用的Activity组件。这是因为每个Fragment定义了它们自己的布局和拥有它们自己生命周期的行为,你能够在多个Activity中包含一个Fragment,因此你应该把它设计成可复用的,并且要避免一个Fragment到另一个Fragment直接操作。这尤其重要,因为一个模块化的Fragment允许你针对不同的屏幕尺寸来改变你的Fragment组合。当正在设计的应用程序要同时支持平板电脑和手持设备时,你能够在不同的布局配置中重用Fragment,借此来优化基于有效的屏幕空间的用户体验。例如,在手持设备上,当在同一个Activity中不能同时填充多个Fragment时,就需要分别给这些Fragment提供单独的UI面板。

 例如,继续使用关于新闻的应用作为例子,在平板电脑上运行时,Activity A中能够被嵌入两个Fragment,而在手持设备的屏幕上,没有足够的空间来包含这两个Fragment,因此Activity A仅包含了针对文章列表的Fragment,并且当用户选择一篇文章时,它启动Activity B,它包含了第二个用于阅读文章的Fragment。这样,就像上图1说明的那样,应用程序通过使用不同的组合重用Fragment来支持平板电脑和手持设备。

 关于用不同的Fragment组合来设计程序以适应不同的屏幕配置,请看支持平板电脑和手持设备(Supporting Tablets and Handsets)。

原创粉丝点击