安卓碎片混淆

3
我有一个关于Android中片段的正确逻辑使用的问题。我知道它是为了改善平板电脑体验而设计的,但这是否意味着片段通常只应用于此目的?或者,将片段用作自定义复合视图的替代品会是一种不良开发实践吗?
例如,我正在编写一个记分应用程序。当计分表格生成时,它会为ScrollView中的每个玩家创建一个"ScoreCell",即自定义复合控件。我想要做的事情(但不知道如何做为View)是处理由包含活动激活的内部OnClickListeners:每个ScoreCell都有一个TextView用于玩家的名称,我希望长按以startActivityForResult()打开输入对话框来更改ScoreCell的名称。但是,由于OnActivityResult()方法在View中不可用,所以我是否应该将每个ScoreCell都变成一个片段? 这是一个帮助理解我需要/困惑的逻辑的活动图片

1
我认为这张图片展示了Fragment的大部分使用方式。http://developer.android.com/images/fundamentals/fragments.png 。有时候,在一个Activity中只有一个Fragment是完全合理的。 - Simon Forsberg
1
不要将得分单元格变成一个片段。至于更改名称,可以使用DialogFragment来实现。 - M-Wajeeh
2个回答

4

这里有很多问题,让我逐个解答。

  1. Fragment不仅仅是为平板电脑设计的,它们可以让你创建更加模块化和适应性强的布局(类似于类)。它们在平板电脑横屏布局中非常有用,同时还可以提供可重用的组件。

  2. 与此同时,在这种情况下使用Fragment并不是正确的选择... 更好的方法是使用ListView,配合自定义单元格布局。而不是使用另一个Activity来显示对话框,只需要调用new Dialog()和dialog.show()即可。如果一个Activity将被用户长时间使用并提供新的“活动”(操作),那么才应该将其作为对话框使用。


1
在列表中,每个项目不应该是它们自己的片段。您可以弹出对话框而无需创建整个Activity。请查看AlertDialogs和DialogFragments的文档以获取有关对话框的结果。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接