我正在开发一个论坛阅读器,我希望它只能在手机上运行,而不是平板电脑。
应用程序最初有3个视图,每个视图都分配了一个Activity。 例如,如果用户在“Board selection screen”上选择一个板,则将启动一个Activity,并向用户显示所选板的线程列表。
最近我学会了如何在Android应用程序中使用fragment。因此,我决定将我的应用程序从基于活动的应用程序转换为基于片段的应用程序。
虽然更改后应用程序的工作正常,但我在保存片段状态时遇到了问题。我没有找到事件让我保存片段的状态(当我从A片段切换到B片段时)。最可能的事件是onSaveInstanceState(Bundle),但是根据API指南,它只会在活动即将停止时调用,而不是我的情况。
实际上我试图在onDestroyView()中的getArgument()中保存状态。然而,根据API指南,getArgument()中的值只应用于实例化片段。虽然当我在getArgument()中保存状态时一切正常但我相信我做错了。
我曾试图做一些关于Fragment的谷歌搜索。我发现大多数艺术家都认为,当应用程序可以在手机和平板电脑上运行时,Fragment非常有用。而且我没有找到任何艺术家谈论如何在活动中的几个片段之间进行屏幕切换。我开始怀疑Fragment只对支持不同的设备有用,但不适用于屏幕切换。
对不起上面的垃圾。我的问题是,当我开发一个仅用于电话的应用程序时,Fragment是不是非常有用?如果我不希望在平板电脑上运行,我应该将我的应用程序更改回基于活动的应用程序吗?
答案 0 :(得分:1)
碎片擅长的另一件事是它们对Dialogs有好处。基于片段的对话框在旋转手机时没有通常与showDialog()相关的问题
答案 1 :(得分:0)
不,你应该坚持使用Fragments。它们具有令人难以置信的多功能性,如果您决定重新安排事物,它将使您的生活更轻松。就保存状态而言,您只需覆盖onSaveInstanceState()
(而不是Fragment
)中的Activity
。在片段之间切换时绝对会调用它 - 我一直都在使用它。
答案 2 :(得分:0)
如果我们正在谈论"只是工作"你可以继续使用片段或只是正常的活动和布局。但是,除了在为平板电脑等其他设备开发时的可扩展性之外,它提供了哪些片段,它为您提供了更多的代码分离,这对于维护应用程序非常有用。