Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 与使用片段相比,将导航抽屉与活动一起使用有哪些优点?_Android_Android Fragments_Navigation Drawer - Fatal编程技术网

Android 与使用片段相比,将导航抽屉与活动一起使用有哪些优点?

Android 与使用片段相比,将导航抽屉与活动一起使用有哪些优点?,android,android-fragments,navigation-drawer,Android,Android Fragments,Navigation Drawer,我想在我的应用程序中实现一个导航抽屉,但我对是否应该将其用于片段或活动(有关更多详细信息,请参见下图)存在冲突 两者之间有什么真正的优势或劣势,还是只是偏好的问题 编辑: 我想澄清一下我的问题: 在使用活动而不是片段的情况下 当我选择“导入”时,它将打开一个活动而不是一个片段,如果我选择“图库”,它将打开一个活动,其中包含图库项目等的内容,以及抽屉窗口中其他项目的内容 在使用片段而不是活动的情况下 如果我从抽屉窗口中的任何项目中进行选择,它将为每个选定项目打开其内容片段,而不是为每个选定项目启动

我想在我的应用程序中实现一个导航抽屉,但我对是否应该将其用于片段或活动(有关更多详细信息,请参见下图)存在冲突

两者之间有什么真正的优势或劣势,还是只是偏好的问题

编辑:

我想澄清一下我的问题:

  • 在使用活动而不是片段的情况下 当我选择“导入”时,它将打开一个活动而不是一个片段,如果我选择“图库”,它将打开一个活动,其中包含图库项目等的内容,以及抽屉窗口中其他项目的内容

  • 在使用片段而不是活动的情况下 如果我从抽屉窗口中的任何项目中进行选择,它将为每个选定项目打开其内容片段,而不是为每个选定项目启动新活动


    记住碎片需要活动。当使用片段时,您总是有一个最小值

    如果您正在谈论像main元素一样使用,那么在大多数情况下最好使用片段,因为您有更大的灵活性

    如果您有3个活动和10个片段,或者有13个活动,性能会更好吗?想想看,应用程序中的导航将是一个巨大的挑战,但这只是在应用程序中使用正确的流程

    编辑:

    例如:

    具有活动而不是片段的抽屉

    如果要使用不带片段的NavigationDrawer,则最好将NavigationDrawer实例保留在单个活动中。当您通过从NavigationDrawer中的项目中进行选择来导航应用程序时,启动的每个活动都不应实现NavigationDrawer,而应实现back按钮导航回NavigationDrawer在其中实现的“主”/“单个活动”

    注意:如果确实希望在多个活动中实现NavigationDrawer,则必须在希望显示它的每个活动中重新创建NavigationDrawer的新实例

    我认为这与使用片段相比是一个缺点,而如果使用片段,则不需要很多抽屉实例,只需要一个

    具有片段而不是活动的抽屉


    如果将NavigationDrawer与片段一起使用,则抽屉应在单个活动中实现,并且当选择每个抽屉项目时,其内容将显示在各自的片段中(在管理所有片段实例的中心活动内部调用)

    如果打开新活动,你失去了导航抽屉。当所有片段都与某个“顶级”视图相关时,应该使用抽屉。@cricket_007所以基本上,如果我将抽屉与活动一起使用,我必须在每个NavigationDrawer项目的活动页面中创建一个新实例?我想是这样。您必须调用
    setContentView
    ,您将失去对另一个抽屉的引用。@cricket\u 007好的