NavigationDrawer活动与片段回调和应用程序业务逻辑混杂在一起

mid*_*ght 7 android android-fragments android-activity navigation-drawer android-navigation

一个Activity含有NavigationDrawer应该兼顾其片段.我的问题是抽屉必须在应用程序的所有可能屏幕上都可用,这使得我的唯一活动MainActivity与片段回调代码和不同种类的导航/业务逻辑混杂在一起.

随着应用程序的增长,浏览活动变得更加困难,我开始考虑可能的替代方法.新方法必须保持原始的相同视觉行为并消除混乱.

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

因此,由MainActivity实现的监听器接口数量增加,此时此数量达到20.您可能会认为它看起来或感觉不好.

我想我可能会将事情分解为多个NavigationDrawer活动以简化维护.它表明更大的资源消耗和轻微的视觉效果偏差,因为新的活动将仅在抽屉关闭后启动,与原始方法相反,后者立即改变碎片.

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

谢谢.

UPD改进了描述.

Ste*_*ett 4

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

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

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

这样,您的应用程序的导航结构就清晰了,绝对是正确的选择。

您可以按照这个非常好的完整教程进行操作,它可以执行类似的操作。乍一看有点不知所措,但您可以了解基本概念。

  • 这就是OP试图避免/寻求建议的事情。“这表明......轻微的视觉效果偏差,因为只有在抽屉关闭后才会启动新的活动,这与原始立即更改片段的方法相反”。 (2认同)