将导航抽屉活动实施到现有应用

时间:2014-11-09 16:08:56

标签: android android-activity drawer

我制作了一个简单的应用程序,当我打开它时,我会看到壁纸和2个按钮。第一个按钮打开我的图库,第二个按钮打开一个计算器应用程序。现在我希望能够从左向右滑动并调出导航抽屉活动。 我这样做了:右击我的应用程序 - >新 - >活动 - >导航抽屉活动。它创建了2个java类(NavigationActivityNavigationDrawerFragment),一些布局(activity_navigation fragment_navigationfragment_navigation_drawer)。无论如何,我不知道如何使导航抽屉显示,如何将其链接到我的activity_main

这是activity_main.xml:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity"
    android:background="@drawable/digital_blue_wallp">

    <TextView
        android:text="@string/welcome"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#fff8fdff"
        android:textSize="24sp"
        android:id="@+id/welcome"
        android:layout_centerHorizontal="true"/>


    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:background="@drawable/calcu"
        android:layout_alignParentBottom="true"
        android:layout_alignRight="@+id/welcome"
        android:layout_alignEnd="@+id/welcome"
        android:layout_centerHorizontal="true"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button2"
        android:background="@drawable/gallery"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />


</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

在主活动布局中,声明导航抽屉如下:

<android.support.v4.widget.DrawerLayout
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <GridView
        android:id="@+id/left_drawer"
        android:layout_width="180dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:paddingTop="10dp"
        android:choiceMode="singleChoice"
        android:numColumns="2"
        android:verticalSpacing="15dp"
        android:horizontalSpacing="5dp"
        android:background="@color/black_transparent"/>

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

我选择使用GridView但你可以使用你想要的任何东西。然后在您的活动中实例化抽屉和子视图:

   mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
   mAppsGrid = (GridView)findViewById(R.id.left_drawer);

然后,您应该创建一个自定义抽屉适配器,它与网格适配器非常相似,只是控制视图中的项目。

    mDrawerAdapter = new DrawerAdapter(this);
    mAppsGrid.setAdapter(mDrawerAdapter);
    mAppsGrid.setOnItemClickListener(this));

我知道这并没有明确地告诉你你做错了什么,但是如果没有看到更多的代码,那就会猜到你的应用程序出了什么问题。希望这有帮助!