android - 是否可以通过在 XML 中定义它的状态来启动隐藏的 fragment ?

标签 android

目前我在资源文件中定义了各种 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/

相关文章:

java - Android SAX 实现不能抛出异常

java - 如何访问(修改、添加元素)到 java 内部类中的 ArrayList/Collection?

java - 将 native C++ 代码转换为 Java

android - 当我尝试从EditText捕获时,Android App崩溃

android - 在运行时将项目添加到 ListPreference

android - 如何检测屏幕上的点击?

java - 给定一个 obj-c 无符号字节数组,如何在 Java 中获得等效的字节值?

android - 更改不是我制作的 iOS 或 Android 应用程序中的文本?

java - Android - 以编程方式相对布局

java - 保持android服务长时间运行