首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android中的嵌套片段不好吗?

Android中的嵌套片段不好吗?
EN

Stack Overflow用户
提问于 2016-01-20 13:29:56
回答 2查看 3.3K关注 0票数 1

我有一个iOS开发人员的背景,目前我正在使用iOS将一个应用程序移植到安卓。在这方面,我对Android上的视图层次结构有一些疑问。

所附的UML图显示了应用程序的片段之间交互的子集。我希望我的视图控制器类具有有限的责任,通过嵌套片段(相当于iOS上的容器视图控制器),以一种整洁和清晰的方式封装该功能。

然而,一位Android开发人员告诉我,嵌套碎片是不好的,因为性能严重下降。我不关心一个小的性能退化,但应用程序当然应该是响应的。我们只针对新的平板电脑和手机。

应该避免在Android上嵌套片段吗?如果有的话,性能下降是什么?(这里给出的例子是~1ms:http://developer.android.com/training/improving-layouts/optimizing-layout.html)

谢谢!

更新:应用程序的布局如下所示。ModelControllerFragment内部的功能相当复杂,因为2D/3D模型被加载,模型操作可以完成(在全屏中),来自ImageEditFlowActivity的流来自应用程序中的几个地方。CommentListFragment也有一些非默认的行为。在一个片段中拥有所有这些功能是不可取的。

EN

回答 2

Stack Overflow用户

发布于 2016-01-20 14:13:00

我想这就是你需要的- ChildFragmentManager

嵌套片段的主要问题是如何处理来自父片段的这些片段。主要问题是通过id在容器中找到正确的片段。当项目如此庞大时,它会产生许多bug。你可以想象一下

Fragment1 -> open Fragment2 ->,它打开了必须将事件发送给Fragment1的Fragment3 ->

如果我们想在当前布局的容器中显示下一个片段,那么这个逻辑是不容易实现的。

与类关系图相关的ChildFragmentManager是处理嵌套片段的最佳实践。

票数 5
EN

Stack Overflow用户

发布于 2016-01-20 13:54:53

不知道太多的细节,很难给你一个选择。

不要将碎片筑巢,它会使你的生活变得艰难。随着应用程序的增长,调试片段可能是一项困难的任务,而管理生命周期并不是最容易的事情(实际上取决于您的所有应用程序试图做什么)。所以,让自己的生活更轻松,不要把碎片嵌套起来。

您应该使用现在很容易提供的设计支持库。例如,TabLayout是在“同一时间”使用3个片段的好方法。

您可以使用一个片段将其他片段添加到堆栈中--这是完全合法和合理的。

无论如何,如果没有更多的细节,就很难给出更多的建议。不过,有一次我可以说--为iOS和安卓做了Xamarin开发--不要尝试使用与iOS相同的UI模型来创建Android。它不会起作用的,它会使你的头部受伤。Android使用起来要简单得多,不要让它过于复杂。

基于OP上编辑的更新:您的视图通常用于平板电脑吗?而且,我不明白为什么OrderItemFragment需要存在--它只是一个包含内部组件的布局。我还认为,这里的主要问题是,您不完全理解片段的使用。例如,OrderListFragment似乎是主/详细设计的一个很好的候选。您的详细信息窗格看起来像是一个具有多个视图或组件的单个片段的很好的候选。我不明白为什么这里需要嵌套的片段,也不明白它会实现什么。您应该考虑利用RelativeLayout和LinearLayout来完成视图的外观任务,然后使用单个片段填充它们。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34901409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档