Android在Android3.0中引入了Fragment,主要用于支持在大屏幕上进行更多的动态和灵活的UI设计,如平板电脑。因为平板电脑的屏幕比手持设备要大,因此有更多的空间用于UI组件的组合和互换。Fragment允许不需要你来管理对View层树的复杂管理的设计方式。通过把一个Activity的布局分解成不同的Fragment,你就能够在运行时编辑Activity的外观,并且在被Activity管理的回退堆栈中保留这些改变。
例如,一个新闻相关的应用在左侧能够使用一个Fragment来显示文章列表,在右侧使用另一个Fragment来显示一篇文章---这两个Fragment并列的显示在同一个Activity中,并且每个Fragment有它自己的生命周期回调方法和处理它们自己的用户输入事件的集合。这样,就不会使用一个Activity来选择文章,而在另一个Activity中阅读文章,用户可以像下图1介绍的那样(平板电脑布局),能够在同一个Activity中选择并预读文章。
![pic1](http://hi.csdn.net/attachment/201202/13/0_13291408575rIR.gif)
图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)。
注:本人转载系个人觉得翻译的很好,值得收藏,且自己回头看着方便。
如有兴趣请访问作者官方博客http://blog.csdn.net/FireOfStar
分享到:
相关推荐
Fragment的设计理念是为了使大型应用更易于管理和维护,尤其是在处理多屏显示和不同设备尺寸时。"Android Fragment堆栈控制器"主要涉及到如何有效地管理Fragment的生命周期和导航状态,确保用户在应用程序中的操作...
Fragment的设计理念是为了更好地适应多屏幕设备,使得开发者能够将UI的不同部分独立管理,提高代码复用性,并允许在不同设备上以更灵活的方式组合这些部分。 Fragment并不是Activity的替代品,而是Activity的补充。...
Fragment的设计理念是为了更好地支持大屏幕设备,如平板电脑,但也同样适用于手机。在本文中,我们将深入探讨Fragment的基本概念、生命周期以及如何创建Fragment。 首先,Fragment可以看作是Activity中的一个子组件...
Jetty的设计理念是轻量、快速、可扩展,使得它成为移动开发中的理想选择。 ### 2. Android上的Jetty集成 在Android项目中集成Jetty服务器,首先需要添加Jetty的依赖库。这通常通过在`build.gradle`文件中声明依赖...
`UIKit-ViewBlock`的设计理念是简化布局管理,提高代码的可读性和可维护性。它将复杂的布局划分为一个个独立的“Block”,每个Block代表一个特定的功能或视图区域,这有助于实现代码的高内聚、低耦合。在实际使用中...
通过学习和分析Sunoath项目,开发者可以深入理解MVP架构的实现方式,掌握Retrofit的网络请求流程,以及如何将Material Design设计理念融入到实际应用中。同时,这也是一个实践项目组织和代码管理的好例子。
1. 设计理念与实现原理: Android-Cloud-TagView-Plus 是一个专门用于创建云标签效果的自定义控件,它基于Android的TextView和LinearLayout进行扩展。该库的主要目标是提供一种易于定制和使用的解决方案,使开发者...
Fragment的设计理念是为了应对大屏幕设备(如平板电脑)和小屏幕设备(如手机)之间的差异,使得界面设计更加灵活。本教程将深入探讨如何动态地在Activity中添加和管理Fragment,以及如何处理横竖屏切换时Fragment的...
`Fragment`的设计理念是为了提高应用程序的可重用性和灵活性,尤其是在处理大屏幕设备如平板电脑时。`Tab`布局则常用于创建一个多页签的用户界面,让用户可以在同一界面下轻松切换不同内容。`android Fragment实现...
在Android应用开发中,组件化(Componentization)是一种常见的架构设计模式,它将应用程序的不同功能模块拆分成独立的组件,每个组件可以单独开发、测试和维护。这有助于提高代码的可复用性、可扩展性和可维护性。...
使用框架(xUtils)"这个项目涵盖了Android开发中的多个重要知识点,包括使用xUtils进行网络请求、数据库操作、视图注入,以及与ViewPager、Fragment、RecyclerView的集成,以及material-design的设计理念。...
Fragment的设计理念是增加代码的复用性和灵活性,使得开发者可以更方便地构建动态和复杂的应用界面。在大型应用中,尤其是那些包含多个视图或需要根据屏幕尺寸调整布局的应用,Fragment的使用显得尤为重要。 **...
这个项目的名字"GanDear"可能是对"肝帝"一词的趣味化表达,也可能代表了项目的核心功能或理念。 在Android应用开发中,开发者通常会涉及到多个组件和框架,包括但不限于Activity、Service、BroadcastReceiver、...
Fragment的设计理念是将UI的某个功能部分封装起来,使其可以独立于Activity进行管理,这样不仅提高了代码的复用性,也使得布局在平板电脑和手机等不同设备上可以更加适配。 Fragment的生命周期与Activity紧密相关,...
本项目“Android-一个使用clean架构的android样板工程”就是一个实践这一理念的实例,使用Kotlin语言进行编写。 ### 1. Clean架构概述 Clean架构由著名软件工程师Uncle Bob Martin提出,它的核心思想是“依赖倒置...
了解这款应用的源代码,有助于开发者提升自己的Android编程技能,同时也可借鉴其设计理念和实现方式。 1. **项目结构** - `zrquan_android-master` 是项目的根目录,通常包含项目的构建文件、资源文件和源代码。 ...
Fragments的核心设计理念在于,它们允许开发者在大屏幕设备上构建复杂的多面板界面,而在小屏幕设备上则可以以更简洁的形式展示内容。以常见的通讯应用为例,如QQ,用户列表可以在平板的大屏幕上显示在左侧,消息...
首先,`JavaApk源码说明.txt`可能是对整个代码框架的简要介绍,它可能会涵盖框架的设计理念、核心功能、使用方法以及注意事项等内容。通过阅读这份说明,开发者可以了解如何导入和使用这个框架,同时也能学习到作者...
Fragment的设计理念是让开发者能够在一个Activity中组合多个独立的UI部分,从而实现多窗格UI,同时可以在不同的Activity中复用这些组件。 **Fragment的生命周期** Fragment具有自己独立的生命周期,它的状态会受到...
Fragment的设计理念是为了在不同屏幕尺寸的设备上更好地展示内容,比如在平板电脑上可以同时展示两个Fragment,而在手机上可能只显示一个。下面将详细解释Fragment的使用方法,包括如何创建、添加到Activity以及如何...