用Fragments在Android中进行多窗格开发
本文翻译于vogella.com。
在Android应用程序中使用Fragments
这篇教程描述了怎样在Android 应用程序中使用Fragment类来创建多窗格布局,也就是可以缩放到设备的可用宽度的应用程序。它基于Eclipse 4.3(Kepler),Java1.6和Android4.4。
1.Android基础
下面的描述假设了你已经掌握了基本的Android开发知识。
请查看Android开发教程来学习基础知识。也可以看Android开发教程来获取更多的关于Android开发的信息。
2.Fragments
2.1 什么是Fragments?
fragment是一个可以被Activity使用的独立的部件。Fragment将功能进行封装所以它更见易于被重用在actvities和layouts之中。
fragment运行在一个Activity的Context中,但拥有它自己的生命周期以及作为特色的用户界面。也可以定义没有用户界面的fragment,也就是headless fragment。
Fragment可以被动态或者静态地添加到一个Activity中。
2.2 使用fragment的好处
Fragment使在不同的布局中重用部件变的容易,例如,你可以为创建单窗格的手机布局和多窗格的平板布局。这没有限制到平板设备上;例如,你也可以使用fragment在智能手机上来支持横屏和竖屏的不同布局。
典型的例子是一个Activity中展示item的一个列表。在平板设备上如果你在item上点击,你可以立即在同一块屏幕的右侧看到item的详情。在智能手机上你会跳转到一个新的详情界面。下面的图片就描述了这些。
接下来的讨论将假设你有两个fragment(main和detail),你也可以有更多。我们将会有一个main activity和一个detailed activity。在平板上main activity的布局中包含两个fragment,在手持设备上只包含main fragment。
下面的截图表明了这样的用法。
2.3 如何使用fragment
用fragment创建不同的布局,你可以:
- 使用一个activity,平板上显示两个fragment。在这种情况下你将在任何必要的时候在activity中切换fragment。这就需要fragment不能声明在layout文件中因为那样的fragment不能在运行期间被移除。
- 在手机上使用各自的activity来持有每一个fragment。例如,但平板电脑UI在一个activity中使用两个fragment的时候,在手机上使用同一个activity,但提供一个可供选择的仅包含一个fragment的布局。当你需要切换fragment,启动另一个持有其他fragment的activity。