带有 android.support.v7.widget.Toolbar 的 RelativeLayout 中的页脚

Footer in a RelativeLayout with a android.support.v7.widget.Toolbar

我有一个小问题,通常这段代码使用 android 在 RelativeLayout 中放置页脚:layout_above 对我有用,但现在我需要使用 LinearLayout,android:layout_above 不起作用,正如您在照片中看到的那样 Image 1

如果您使用 RelativeLayout 而不是 LinearLayout,Footer OK,ToolBar KO,如图所示 Image 2

layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/linearLayoutSettings"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="@bool/fitsSystemWindows"
android:orientation="vertical">

<FrameLayout
    android:id="@+id/statusBar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/statusBarHeight"
    android:background="?colorPrimaryDark"
    android:translationZ="4dp" />

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:translationZ="4dp"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />

<RelativeLayout
    android:id="@+id/scrollView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbarThumbVertical="@drawable/scrollbar"
    android:scrollbars="vertical">
    <LinearLayout
        android:id="@+id/footer"
        android:layout_alignParentBottom="true"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <include layout="@layout/footer"/>
    </LinearLayout>
    <FrameLayout
        android:id="@+id/contentLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:clickable="true"
            android:layout_above="@+id/footer"
            android:focusableInTouchMode="true"
            android:orientation="vertical">

            <LinearLayout
                android:id="@+id/Li1"
                android:layout_width="match_parent"
                android:layout_height="100dp"
                android:layout_marginTop="15dp"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:orientation="vertical">

                <ImageView
                    android:id="@+id/iv_1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="5sp"
                    android:src="@drawable/1" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/Li2"
                android:layout_width="match_parent"
                android:layout_height="100dp"
                android:layout_marginTop="10dp"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:orientation="vertical">

                <ImageView
                    android:id="@+id/iv_2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="5sp"
                    android:src="@drawable/2" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/Li3"
                android:layout_width="match_parent"
                android:layout_height="100dp"
                android:layout_marginTop="10dp"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:orientation="vertical">

                <ImageView
                    android:id="@+id/iv_3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="5sp"
                    android:src="@drawable/3" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/Li4"
                android:layout_width="match_parent"
                android:layout_height="100dp"
                android:layout_marginTop="10dp"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:orientation="vertical">

                <ImageView
                    android:id="@+id/iv_4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="5sp"
                    android:src="@drawable/4" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/Li5"
                android:layout_width="match_parent"
                android:layout_height="100dp"
                android:layout_marginTop="10dp"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:orientation="vertical">

                <ImageView
                    android:id="@+id/iv_5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="5sp"
                    android:src="@drawable/5" />

            </LinearLayout>
        </LinearLayout>
    </FrameLayout>
</RelativeLayout>

页脚:

<LinearLayout
    android:id="@+id/footer"
    android:layout_alignParentBottom="true"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <include layout="@layout/footer"/>
</LinearLayout>

如果您希望页脚位于您的 contentLayout 下方,我认为这会解决您的问题 尝试将页脚更改为:

<LinearLayout
    android:id="@+id/footer"
    android:layout_alignParentBottom="true"
    android:layout_width="fill_parent"
    android:layout_below="@+id/contentLayout"
    android:layout_height="wrap_content">
    <include layout="@layout/footer"/>
</LinearLayout>

然后将contentLayout@+id/...改为@id/...