CoordinatorLayout导致FrameLayout落在底部导航栏的后面

时间:2018-11-16 08:16:07

标签: android android-coordinatorlayout android-support-design coordinator-layout

这是我的活动XML:

<?xml version="1.0" encoding="utf-8"?>
<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:background="@android:color/white"
    android:fitsSystemWindows="true">

    <include layout="@layout/toolbar" />

    <FrameLayout
        android:id="@+id/frameLayoutContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

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

我将frameLayoutContainer替换为以ConstraintLayout为根的片段。它的底部有一个受app:layout_constraintBottom_toBottomOf="parent"

约束的Button视图。

但是“按钮”视图位于导航栏的后面。我有许多与此活动几乎相同的结构,但是它们没有这样的问题。

当我用LinearLayout替换CoordinatorLayout时,问题已解决,但是我想知道CoordinatorLayout出了什么问题?

1 个答案:

答案 0 :(得分:1)

app:layout_behavior="@string/appbar_scrolling_view_behavior"行完成了所有工作。尝试从XML文件中删除此行,即使您未将frameLayoutContainer替换为Fragment,也会看到问题发生。

因此,解决方案是将app:layout_behavior="@string/appbar_scrolling_view_behavior"行添加到Fragment的根目录(以XML或以编程方式)并进行检查。