7

Activity包含NavigationDrawer的内容应该处理其片段。我的问题是抽屉必须在应用程序的所有可能屏幕上都可用,这使得我唯一的活动 MainActivity 非常混乱,其中包含片段回调代码和不同类型的导航/业务逻辑。

随着应用程序的增长,在活动中导航变得越来越困难,我已经开始考虑可能的替代方法。新方法必须保持与原始方法相同的视觉行为并消除混乱。

除了导航抽屉事件之外,还有多个片段也包含导航/业务逻辑,它们也将由 MainActivity 处理。例如,一个片段可能包含 3 个或更多按钮,这些按钮将启动其他片段或执行一些跨关注的业务逻辑。

所以.. MainActivity 实现的监听器接口的数量增加了,到现在达到 20 个。你可能会想象它看起来或感觉都不好。

我想我可能会将事物与多个NavigationDrawer活动解耦以简化维护。这意味着更大的资源消耗和轻微的视觉效果偏差,因为只有在抽屉关闭后才会启动新的活动,这与原来的立即改变片段的方法相反。

你认为这是一个坏主意吗?如何改进?还是有更好的解决方案?

谢谢。

UPD完善了描述。

4

2 回答 2

4

你说,你只有一个Activity。因此,我假设所有屏幕都是您应用程序中的片段。因此,默认情况下,NavDrawer 将在您的应用程序中随时可用。

不需要具有不同实现的 NavDrawer 的多个 Activity。您可以使用一个 BaseActivity 来处理 NavDrawer 的实现,并且通过继承,您可以在您喜欢的每个 Activity 中使用它,如果您想在未来实现更多。这将遵循 OOP 原则并导致代码更简洁。此外,NavDrawer 在每个 Activity 中的外观和行为都相同。它的目的是为您的应用程序提供一个导航菜单。

Activity 扩展了 BaseActivity,其工作是处理 Fragment 的事务以及通过回调与它们进行通信。

有了这个,您的应用程序的导航结构清晰,绝对是要走的路。

你可以按照这个非常好的完整教程来做这样的事情。乍一看有点不知所措,但您可以了解基本概念。

于 2013-10-20T17:04:43.743 回答
3

我建议只使用一个 NavigationDrawerDelegate 类来处理所有导航逻辑并将其添加到您的活动中并委托给它。一个例子在这里做得很好

于 2013-10-22T21:51:15.400 回答