参考下图:
http://developer.android.com/guide/components/fragments.html
有人可以解释一下为什么谷歌建议在手机上使用 2 个单独的活动,在平板电脑上使用一个活动吗?如果我在活动 A 中有代码来管理片段 B(用于平板电脑),为什么我应该在活动 B 中为手机重复相同的代码?
似乎对于电话,我仍然可以使用 1 个活动(仅活动 A)并替换片段,这可以减少冗余代码吗?
谢谢。
参考下图:
http://developer.android.com/guide/components/fragments.html
有人可以解释一下为什么谷歌建议在手机上使用 2 个单独的活动,在平板电脑上使用一个活动吗?如果我在活动 A 中有代码来管理片段 B(用于平板电脑),为什么我应该在活动 B 中为手机重复相同的代码?
似乎对于电话,我仍然可以使用 1 个活动(仅活动 A)并替换片段,这可以减少冗余代码吗?
谢谢。
本质上,原因是手机很小。真的很小。微小的,事实上。
以电子邮件应用程序的经典场景为例。该场景中的两个片段是消息列表(片段 A)和消息内容(片段 B)。在有空间的平板电脑上,您可以将它们组合成一个活动,同时在屏幕上舒适地显示。但是,在手机上,您需要仔细管理屏幕空间,因此您应该将它们分为选择消息阶段(活动 A 显示片段 A)和阅读消息阶段(活动 B 显示片段 B )。
通过将它们开发为片段,类似于其他平台中的用户控件,您可以在平板电脑和手机上的相同代码库中使用相同的片段,从现有片段组成活动。
我明白你的意思。。
您可以使用片段容器并替换片段,为选择回调定义接口。谷歌就是这样做的,我猜对于那些来自活动世界的人来说可能更清楚。
Rejinderi 的解决方案应该有效。我认为无论是那个实现还是谷歌的例子都是一个合理的选择。这取决于您要达到的目标。
就个人而言,我更喜欢谷歌的例子,原因如下:
ActivityA
要捕获JobB。FragmentB
没有处理的逻辑FragmentA
(有点)不同,将其分解为自己的活动有助于分离该逻辑,并使所有内容更具可读性。