我正在创建一个透明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
置于我的内容后面,因此无法看到。任何有关这方面的帮助将不胜感激!
答案 0 :(得分:2)
你应该:
摆脱根FrameLayout
;
如您所说,将Toolbar
放在main_fragment_container
内。这虽然必须转换为LinearLayout
(例如),以便在顶部垂直显示工具栏,然后显示您的内容(可以嵌套到新的FrameLayout
中)。
您看到了内容背后的工具栏,因为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>