工具栏上的Android导航抽屉

时间:2014-12-30 13:12:11

标签: android android-fragments android-navigation

我正在创建一个透明Toolbar的应用程序,我希望Navigation Drawer出现在其中。现在我的主要布局是:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

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

        <!-- Main layout -->
        <FrameLayout
            android:id="@+id/main_fragment_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

        <!-- Toolbar -->
        <android.support.v7.widget.Toolbar
            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/toolbar"
            app:theme="@style/ToolbarTheme"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@android:color/transparent"/>

        <!-- Nav drawer -->
        <fragment
            android:id="@+id/fragment_drawer"
            android:name="rsay.android.scrollbanner.NavigationDrawerFragment"
            android:layout_width="@dimen/navigation_drawer_width"
            android:layout_height="match_parent"
            android:layout_gravity="left|start"
            tools:layout="@layout/fragment_navigation_drawer"/>

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

<!--<android.support.v7.widget.Toolbar-->
    <!--xmlns:android="http://schemas.android.com/apk/res/android"-->
    <!--xmlns:app="http://schemas.android.com/apk/res-auto"-->
    <!--android:id="@+id/toolbar"-->
    <!--app:theme="@style/ToolbarTheme"-->
    <!--android:layout_width="match_parent"-->
    <!--android:layout_height="?attr/actionBarSize"-->
    <!--android:background="@android:color/transparent"/>-->

</FrameLayout>

现在,这为我的导航抽屉提供了我需要的正确动画,但是我的内容(在另一个布局中)不会滚动。如果我在Toolbar内注释掉我当前的Navigation Drawer并取消注释底部的那个,我的内容会滚动,导航抽屉的高度正确,除了工具栏位于导航顶部抽屉,所以抽屉图标在抽屉本身可见。我尝试将所有工具栏一起移除并将其放在我的内容布局中,但是我收到了一个空引用错误。我还尝试将Toolbar放在main_fragment_container内,这使Toolbar置于我的内容后面,因此无法看到。任何有关这方面的帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

你应该:

  • 摆脱根FrameLayout;

  • 如您所说,将Toolbar放在main_fragment_container内。这虽然必须转换为LinearLayout(例如),以便在顶部垂直显示工具栏,然后显示您的内容(可以嵌套到新的FrameLayout中)。

    < / LI>

您看到了内容背后的工具栏,因为FrameLayout子项重叠。

<android.support.v4.widget.DrawerLayout>

    <LinearLayout>
        android:orientation="vertical"

        <android.support.v7.widget.Toolbar /> <!-- toolbar code here -->
        <RelativeLayout /> <!-- main layout here -->

    </LinearLayout>

    <fragment>  <!-- drawer stuff -->
        android:layout_gravity="start"
    </fragment>

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