我正在开发一个论坛阅读器,我希望它只能在手机上运行,不能在平板电脑上运行。
应用程序最初有 3 个 View ,每个 View 都分配有一个 Activity。 例如,如果用户在“Board selection screen”上选择了一个 board,Activity 将启动,并向用户显示所选 board 的线程列表。
最近我学习了如何在 Android 应用程序中使用 fragment 。因此我决定将我的应用程序从基于 Activity 的应用程序转换为基于 Fragment 的应用程序。
尽管更改后应用程序像往常一样正常运行,但我在保存 fragment 状态时遇到了问题。我找不到让我保存 fragment 状态的事件(当我从 A fragment 切换到 B fragment 时)。最有可能的事件是 onSaveInstanceState(Bundle),但根据 API 指南,它只会在 Activity 即将停止时调用,而我的情况并非如此。
实际上我已经尝试在 onDestroyView() 中保存 getArgument() 中的状态。尽管如此,根据 API 指南,getArgument() 中的值应该只用于实例化 fragment 。虽然当我在 getArgument() 中保存状态时一切正常,但我相信我做错了。
我尝试在谷歌上搜索一些关于 Fragment 的信息。我发现大多数艺术家都建议当应用程序希望在手机和平板电脑上运行时,Fragment 很有用。而且我找不到任何艺术家在谈论如何在 Activity 中的几个 Fragment 之间进行屏幕切换。我开始怀疑 Fragment 只能用于支持不同的设备,而不能用于屏幕切换。
抱歉上面的垃圾。我的问题是,当我开发仅适用于手机的应用程序时,Fragment 不是很有用吗?如果我不希望我的应用程序在平板电脑上运行,我是否应该将我的应用程序改回基于 Activity 的应用程序?
最佳答案
Fragments 擅长的另一件事是它们适用于 Dialogs。基于 fragment 的对话框没有旋转手机时使用 showDialog() 通常遇到的任何问题
关于android - fragment 仅在应用程序设计为在手机和平板电脑上运行时才有用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18805194/