Android UI基础教程:使用Fragment构建灵活的桌面

  当我们设计应用程序时,希望能够尽最大限度的适配各种设备,包括4寸屏、7寸屏、10寸屏等等,Android开发文档给了我们参考,而且Google IO的app(如图二)也实现了这种思想,他们都是使用layout、layout-large里面不同的布局文件实现的,下面是翻译的篇的文章,里面的例子能详细的看出layout、layout-large并使用Fragmen构建灵活的桌面。

  FragmentManager类提供了一些方法,使您可以在Activity运行时添加,删除和替换Fragment,以创造一个灵活、动态的体验。

  图一中,在大屏中两个Fragment显示在一个屏中,但是手持设备中,需要两屏显示完,一屏只能显示一个,他们之间需要相互引导。

  替换一个fragment的过程和添加Fragment的过程差不多,但是需要的是replace()方法,而不是add()方法。 需要注意的是,当执行fragment事务时,比如替换或者删除一个fragment,如果想能回退到当前,你必须在你提交fragment事务之前调用 addToBackStack()方法。

  当移除或替换fragment时将事务添加到堆栈中,被移除的Fragmeng没有,如果用户返回,Fragment会重新启动。如果没有放入到堆栈中,当Fragment被替换或移除,Fragment会。

  当设计应用程序,你可以在不同的布局结构中重复使用Fragment,以支持众多的屏幕尺寸,,在可用的屏幕空间上优化用户体验。例如在手持设备(如Nexus 4)上,一个屏显示一个Fragment,在更大屏(如Nexus 7)上可以使用多个Fragment显示信息。如下图:

  addToBackStack()方法有一个可选的字符串参数,用来指定事务的唯一名称,这个必须的。