首页 > 解决方案 > FloatingActionButton 未在 CollapsingToolbarLayout 中显示

问题描述

嗨,我需要显示 2EditTextFloatingActionButtonin CollapsingToolbarLayout。我已使用此代码显示CollapsingToolbarLayout,但我FloatingActionButton在真实设备中不可见(Redmi Note 4)。

XML 代码

<android.support.design.widget.CoordinatorLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

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

            <android.support.design.widget.CollapsingToolbarLayout
                android:id="@+id/collapsing_tool_bar_layout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layout_scrollFlags="scroll|exitUntilCollapsed"
                app:statusBarScrim="?attr/colorAccent">
<FrameLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layout_collapseMode="parallax"
                android:layout_marginLeft="72dp"
                android:layout_marginRight="16dp"
                android:layout_marginBottom="32dp"
                android:layout_marginTop="136dp">
    -->1st textView
 </FrameLayout>
    <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@color/primary"
                    android:minHeight="?attr/actionBarSize"
                    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                    app:layout_collapseMode="pin"
                    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
    -->2nd TextView

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

            </android.support.design.widget.CollapsingToolbarLayout>
        </android.support.design.widget.AppBarLayout>


        <android.support.design.widget.FloatingActionButton
          android:id="@+id/floating_action_button"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_margin="@dimen/fab_margin"
          app:layout_anchor="@id/appbar"
          app:layout_anchorGravity="bottom|end"
          app:srcCompat="@drawable/ic_add_black_24dp" />

我得到的输出布局

标签: androidandroid-layoutandroid-collapsingtoolbarlayoutfloating-action-button

解决方案


您粘贴的代码不是完整的代码,NavigationView因为您提供的图片显示有一个NavigationView(至少有一个DrawerLayout)包含CoordinatorLayout等。

但是,此代码有效:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_tool_bar_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:statusBarScrim="?attr/colorAccent">

            <FrameLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginStart="72dp"
                android:layout_marginTop="136dp"
                android:layout_marginEnd="16dp"
                android:layout_marginBottom="32dp"
                app:layout_collapseMode="parallax" />

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/colorPrimary"
                android:minHeight="?attr/actionBarSize"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

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

        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/floating_action_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        app:fabSize="normal"
        app:layout_anchor="@+id/appbar"
        app:layout_anchorGravity="bottom|end"
        app:srcCompat="@drawable/ic_settings_white_24dp" />

</android.support.design.widget.CoordinatorLayout>

结果:

在此处输入图像描述

也许你需要“ +”,或者,如果这段代码没有帮助app:layout_anchor="@+id/appbar",还有另一个问题。DrawerLayout另外,确保CoordinatorLayout是最后的孩子DrawerLayout


推荐阅读