Android:片段用法以支持不同的屏幕配置

时间:2013-03-09 21:24:56

标签: android android-fragments

我正在学习Android碎片。现在我正在学习在不同配置模式下动态加载片段的方法。特别是我需要创建在BIG屏幕中具有2个片段的ManagementActivity的UI(左侧的项目列表 - ItemsListFragment,右侧的项目详细信息 - DetailsFragment)。

我写了一个很好的原型,适用于大屏幕:它有1个活动,里面有两个片段。碎片可以很好地相互配合。

据我了解,下一步是为小屏幕尺寸创建另一个ManagementActivity布局......但我不了解整个画面。

我看到几个选项:

选项1。

让另一个包含ItemsListFragment的SmallManagementActivity在项目内部和单击项目上显示另一个包含DetailsFragment的活动。

Lars Vogel在他的教程http://www.vogella.com/articles/AndroidFragments/article.html中提出了这个想法。它看起来是一个可行的想法,但我不太喜欢它,因为它需要实现额外的逻辑来决定实例化哪个活动。

选项2。

ManagementActivity应该有2个布局:1个用于大屏幕,另一个用于小屏幕。在大屏幕模式下,它将包含2个片段,小屏幕 - 仅1个ItemsListFragment。在项目单击时,应弹出一个包含DetailsFragment的新活动。

Dianne Hackborn在http://android-developers.blogspot.ca/2011/02/android-30-fragments-api.html

中提出了这个想法

此选项对我来说看起来更好,对生产应用程序也有好处。但是我仍然希望将所有片段保留在一个活动中并动态加载适当的片段。

选项3。

我最初想要一个没有'空'布局的活动,并使用FragmentManager支持的事务动态加载适当的片段: - on activity start - 加载ItemsListFragment - 在任何项目上单击 - 加载DetailsFragment - 一旦用户回击或保存更改 - 再次加载ItemsListFragment。

问题:

这些方法的优点/缺点是什么?我觉得活动太多很糟糕,但情况确实如此吗?

1 个答案:

答案 0 :(得分:1)

Android开发者上的这个链接可以让您了解系统如何设计为您的Senario工作:

http://developer.android.com/training/multiscreen/adaptui.html