如何将NavigationDrawer从活动模板添加到其他活动?

时间:2015-12-19 20:30:03

标签: android android-fragments

我一直在使用Android Studio中的抽屉菜单活动模板,因为我之前没有使用过抽屉菜单。这是布局文件。

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:fitsSystemWindows="true" tools:openDrawer="start">

    <!-- Includes a Toolbar and FloatingActionButton. Generated by Android Studio-->
    <include layout="@layout/app_bar_drawer_menu" android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <android.support.design.widget.NavigationView android:id="@+id/nav_view"
        android:layout_width="wrap_content" android:layout_height="match_parent"
        android:layout_gravity="start" android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_drawer_menu"
        app:menu="@menu/activity_side_menu_drawer" />

</android.support.v4.widget.DrawerLayout>

Android Studio还生成了一个Activity类作为模板的一部分。我的应用程序也有一个使用LinearLayout的主要活动。我想使用Fragments将抽屉菜单添加到主要活动(和其他活动),但我不确定如何做到这一点。我是否需要创建片段的新子类并为片段类调整DrawerMenuActivity的回调方法?然后我将片段标签添加到activity_main.xml?

1 个答案:

答案 0 :(得分:-1)

这可能是你需要包围的东西......

理想情况下,您希望使用片段事务交换位于xml中的容器中的片段,并使用片段事务调用替换片段放置在容器中。这将允许您重新使用容器并将抽屉提供给整个应用程序。

否则,您需要在每个创建大量额外代码的活动中包含抽屉,或者不提供抽屉,这取决于您可能能够逃脱的活动。

因此,抽屉使用通过事务交换的片段,而不是很好地进行其他活动。它是你需要设计的东西。

请为活动创建一个带有生成抽屉的新项目,然后从那里继续。另请阅读android开发人员教程,了解有关通信的片段部分,以了解抽屉片段和活动的通信方式。

抽屉实际上有一点涉及,但你应该能够在一两天内掌握好。