目前我在资源文件中定义了各种 fragment 并将它们隐藏在包含 Activity 的 onCreate 方法中,但我对这种方法不满意,因为我希望这是每个 fragment 的特征之一自己定义。
我是将 Fragments 对象化了太多还是只是缺少技术?
谢谢, R
最佳答案
I'm not satisfied with this approach as I would expect this to be one of the characteristics that each fragment would define for itself.
我不同意这种评估。
fragment 负责屏幕的一小部分以及纯粹包含在屏幕的一小部分中的任何事件。
fragment 是托管在 Activity A 还是 Activity B 或 Activity C 上,是否与其他 fragment 并排,是否当前可见,等等都不是 fragment 的责任。该责任在于托管 Activity (或 Activity ,如果 fragment 被重用)。托管 Activity 知道屏幕大小以及在将特定 fragment 加载到屏幕上时应该做什么。
毕竟,规则可能会改变。也许该 fragment 隐藏在小/普通屏幕上,但在大/超大屏幕上可见。或者,也许该 fragment 最初是单独使用的,但后来被加载到 ViewPager
中。或者, fragment 可能作为 FragmentTransaction
的一部分动态创建并添加到 BACK 堆栈,因此用户可以独立地删除 fragment 。恕我直言, fragment 不应该知道也不关心任何这些东西,因为它都超越了单个 fragment 的边界。
关于android - 是否可以通过在 XML 中定义它的状态来启动隐藏的 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10019989/