【问题标题】:Wrapping the design library navigation drawer in a Fragment将设计库导航抽屉包装在 Fragment 中
【发布时间】:2016-03-12 18:35:33
【问题描述】:

是否有一种(简单的)方法可以将设计支持库中的导航抽屉视图(更准确地说是android.support.design.widget.NavigationView)包装在 Fragment 中?

这样做的动机是将与导航抽屉相关的代码(例如触发网络请求的切换)从托管 Activity 中移出到单独的模块中。

我正在寻找描述如何实现这种行为的参考实现或文档。

【问题讨论】:

    标签: android android-fragments android-design-library navigation-drawer


    【解决方案1】:

    您可以为此使用 MVP 模式。

    View 在您的情况下 - 它是 NavigationDraver
    Presenter - 这是一个声明用户迭代的简单界面。

    例如

    public interface DrawerPresenter {
    
        void toggleNetwork();
    
        void goOffline();
    
        void showSettings();
    }
    

    实际上,您只是将所有用户操作重新广播到 Presenter。 之后,您可以将DrawerPresenterActivity 逻辑移动到不同的模块中。

    这种情况下的利润:

    • 逻辑更清晰
    • 敏捷架构
    • 独立于用户界面

    【讨论】:

    • 我看不出我能通过这种方法获得什么。归根结底,我仍然必须从我的 Activity 中生成一个保留的 Fragment 才能正确处理生命周期。如果抽屉本身是一个 Fragment,这很容易避免。如果我错了,请纠正我,也许我在这里没有看到大局,因为我从未使用过这种模式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多