Android SupportLib - CoordinatorLayout 中的 FrameLayout,AppBarLayout 占用整个屏幕高度

Android SupportLib - FrameLayout in CoordinatorLayout with AppBarLayout consuming entire screen-height

我目前在 Android 设计支持库的 CoordinatorLayout 中遇到 FrameLayout 的问题,而我在创建 post选项卡。

基本上大多数事情都按预期工作,容器片段被膨胀到 FrameLayout 并且他们的标签片段被正确添加到 ViewPager 作为标签(需要这样因为我有得到了许多应该重用布局的片段。

我正在努力解决的问题是 FrameLayout(结果也是标签片段)占用了整个屏幕高度,因此它与 Toolbar 和 [=20 重叠=].为了可视化问题,我创建了下图:

Base-Layout with CoordinatorLayout, Toolbar, and TabLayout:

<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appBarLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

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

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

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

    <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

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

膨胀成container的片段使用的独立布局:

<android.support.v4.view.ViewPager
    android:id="@+id/viewPager"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

所有片段都被我的 BaseFragment-class 膨胀(在另一个 post 上调用 inflater.inflate(getLayoutRes(), null); 是导致同样问题的问题)

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(getLayoutRes(), container, false);
}

如果我将 CoordinatorLayout 替换为正常的 LinearLayout,则 FrameLayout 按预期从 AppBarLayout 开始,但根据 documentation AppBarLayout 因为它的大部分功能需要是 CoordinatorLayout.

的直接子代

我可以在 FrameLayout 中添加一个 marginTop,但我想知道是否有任何合适的解决方案。提前感谢您的任何提示!

将您的 app:layout_behavior="@string/appbar_scrolling_view_behavior" 移至 FrameLayout - 该属性需要位于 CoordinatorLayout 的直接子项上。