如何让工具栏覆盖兄弟布局(z排序)

时间:2015-02-05 02:03:12

标签: android android-layout android-framelayout android-toolbar z-order

对于我的生活,我无法让这个Toolbar布局在顶部(注意:不在上面,但在其上面)其兄弟LinearLayout。我可以让Toolbar覆盖其兄弟的唯一方法是将Toolbar的高程指定为> 0,但这不适用于5.0之前的版本。

我使用的是父FrameLayout,而子Toolbar位于XML中的兄弟LinearLayout之后。我错过了什么?即使Android Studio预览窗格也会在Toolbar

之上显示LinearLayout

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        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"
        android:id="@+id/fragment_main_container"
        tools:context=".MainActivity"
        tools:ignore="MergeRootFrame"
        android:orientation="vertical"
        >
        <FrameLayout
            android:layout_weight="4"
            android:layout_width="match_parent"
            android:layout_height="0dp">
            <ImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@drawable/ic_launcher"
                />
        </FrameLayout>
        <ListView
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="5"
            android:id="@+id/home_list_listview"
            android:drawSelectorOnTop="true"
            android:divider="@null"
            android:dividerHeight="0dp"
            tools:listitem="@layout/home_list_item"
            >
        </ListView>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:text="@string/slogan"
            android:gravity="center"
            android:textColor="@color/colorPrimaryDark"
            />
    </LinearLayout>

    <android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="?attr/actionBarSize"
        android:background="@android:color/transparent"
        />
</FrameLayout>

2 个答案:

答案 0 :(得分:0)

原来我有一个片段在主活动上提交线性布局,主活动已包含它。糟糕!

答案 1 :(得分:0)

这是因为FrameLayout。 如果要使用FrameLayout,视图将不会相互关联。 所以你需要做的就是......

set "height of toolbar" to MarginTop of LinearLayout.

希望,这会有所帮助。