假设我有Activity
个特定内容。现在我需要创建一个带有选项卡的新屏幕,以便此活动的内容将成为其中一个选项卡的内容。例如,我知道我可以使用ViewPagerIndicator制作标签。但是,为了做到这一点,我需要将屏幕实现为Fragment
s。问题是当前的实现很大程度上依赖于Activity
层次结构(对超类上的方法的大量调用等)。所以,我不能简单地让当前的类扩展Fragment
。在这种情况下我还有其他选择吗?
答案 0 :(得分:2)
现在我需要创建一个带有标签的新屏幕,以便此活动的内容将成为其中一个标签的内容
将活动作为标签的内容已被弃用近三年作为一种技术。
问题是当前的实现很大程度上依赖于Activity层次结构(对超类上的方法的大量调用等)。所以,我不能简单地让当前的类扩展Fragment。
将大多数“对超类方法的调用”替换为使用getActivity().
作为前缀(如果相关)。
在这种情况下,我还有其他选择吗?
您可以完全删除活动并将UI重写为自定义视图。这比将它们转换为片段更有用。
或者,你可以不做标签。
答案 1 :(得分:1)
所以,我不能简单地让当前的类扩展Fragment。
听起来你有一个庞大的软件架构问题。在这种情况下,您可以考虑完全重写(或更多的复制和粘贴重写)
通常情况下,将活动“转换”为片段应该非常简单。 Fragment具有几乎相同的生命周期回调: Activity.onCreate()---> Fragment.onCreateView()等。
您还可以通过调用Fragment.getActivity()来访问片段的父Activity。
我不知道你的代码,但绝对有可能将活动“转换”为碎片。
您可以将活动代码拆分为自己的类,并将它们注入Fragment。
我可以推荐你没有其他选择! 如果需要选项卡,请使用带有片段的ViewPager。 不要像TabActivity那样使用旧的弃用的东西