将DrawerLayout放在其他布局的顶部而不会覆盖它们

时间:2016-10-15 21:51:24

标签: android layout android-actionbar navigation-drawer android-toolbar

我在这里有点困惑。我想将工具栏放在顶部,然后将导航抽屉放在中间,将底部工具栏放在背景中。层次结构看起来像这样

RelativeLayout
--Top toolbar (android.support.v7.widget.Toolbar)
--Navigation drawer (android.support.v4.widget.DrawerLayout)
------Bottom toolbar (LinearLayout)

enter image description here

但我意识到我无法做到这一点,因为导航抽屉没有底部工具栏的底部重力属性。所以我更改了FrameLayout的主RelativeLayout,并将我的元素按顺序放在FrameLayout中作为元素堆栈。

FrameLayout
-- Top toolbar
-- Navigation Drawer
-- Bottom toolbar

显然,导航抽屉与底部工具栏重叠,我根本无法与之互动。

所以我的问题是:如何在不更改订单的情况下仍然可以访问底部工具栏?我应该如何组织布局以达到预期效果?

我知道我应该将导航抽屉放在顶部,但是我无法看到工具栏,我必须这样做。

此外,如果有人知道原因,抽屉打开时的黑暗褪色不会出于某种原因。过去曾经如此。

修改 我更改了一个RelativeLayout的FrameLayout并按照建议使用了layout_below,但我的底部LinearLayout没有出现。这是我的.xml文件(简化了一点):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    <!-- TOP TOOLBAR -->
    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/top_toolbar_container">

        <android.support.v7.widget.Toolbar
            android:id="@+id/top_toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize">

        </android.support.v7.widget.Toolbar>
    </android.support.design.widget.AppBarLayout>

    <!-- NAVIGATION DRAWER -->
    <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/nav_drawer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/top_toolbar_container">

        <android.support.design.widget.NavigationView
            android:id="@+id/drawer_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"/>

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

    <!-- BOTTOM TOOLBAR -->
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/bot_toolbar"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_gravity="bottom"
        android:layout_below="@id/nav_drawer">
    </LinearLayout>

</RelativeLayout>

0 个答案:

没有答案