使用AppBarLayout的Android SupportLib – FrameLayout中的FrameLayout消耗整个屏幕高度

我目前在Android设计支持库的CoordinatorLayout遇到了FrameLayout的问题,而我在创建选项卡时遵循了这篇文章中的说明。

基本上大多数事情按预期工作,容器碎片被夸大到FrameLayout ,他们的标签片段被相关地添加到ViewPager作为标签(需要它这样,因为我有许多片段应该重用布局)。

我正在努力解决的问题是FrameLayout (以及因此也是tab-fragments)消耗整个屏幕高度,因此它与ToolbarTabLayout重叠。 为了可视化问题,我创建了以下图像:

可视化问题

使用CoordinatorLayoutToolbarTabLayout基础布局:

        

膨胀到container的碎片使用的单独布局:

  

所有片段都由我的BaseFragment -class(在SO上调用inflater.inflate(getLayoutRes(), null);另一篇文章中膨胀inflater.inflate(getLayoutRes(), null);是导致同样问题的问题)

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

如果我用正常的LinearLayout替换CoordinatorLayoutFrameLayout AppBarLayout按预期在AppBarLayout下面开始,但根据文档 ,大多数function的AppBarLayout需要成为CoordinatorLayout的直接子代。

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

  • Android支持devise库中的TabLayout中的IndexOutOfBoundsException
  • 在片段内使用TabLayout; 标签文字不可见
  • 带有阴影的Android底部导航栏
  • Android支持v23.1.0更新中断NavigationView获取/查找标题
  • 如何更改BottomSheetDialog的默认高度?
  • 如何在android支持设计底页中设置最大扩展高度?
  • 如何在Google Play中启用水平滚动选项卡?
  • 如何使用选择器使用新的TabLayout更改图标
  • 将您的app:layout_behavior="@string/appbar_scrolling_view_behavior"FrameLayout – 该属性需要位于CoordinatorLayout的直接子app:layout_behavior="@string/appbar_scrolling_view_behavior"上。