显示工具栏下的内容

您好我试图将我的内容简单地放在工具栏下面,但是当我运行我的应用程序时,当它应该在它下面时,一些内容隐藏在它后面。

我已经阅读了关于使用框架布局来尝试将其分开但我已经陷入困境。 我目前正在使用随软件提供的基本android studio导航抽屉模板,并想知道我必须做出哪些更改。

我的协调员布局

     

我的抽屉布局

     

我需要做出哪些改变?

许多ViewGroups允许他们的孩子重叠。 这些包括FrameLayout,RelativeLayout,CoordinatorLayout和DrawerLayout。 一个不允许其子项重叠的是LinearLayout。

你的问题的答案实际上取决于最终结果应该是什么。 如果你想要一个总是在屏幕上的工具栏和它下面的一些内容,那么你根本不需要CoordinatorLayout和AppBarLayout,你可以使用一个带有两个子节点的垂直LinearLayout:

     

注意FrameLayout的布局属性。

如果你想在滚动内容时进行工具栏滚动和离开屏幕的花哨的东西,那么你需要一个AppBarLayout,你需要给你的内容区域一个特殊属性,如下所示:

       
 app:layout_behavior="@string/appbar_scrolling_view_behavior" 

将此代码添加到帧标记中

正如@Brian Hoang和@Karakuri所说使用layout_behaviour属性:

 app:layout_behavior="@string/appbar_scrolling_view_behavior" 

似乎是一个非常好的解决方案。 即使您目前没有任何animation,但您计划在将来使用,那么您仍然可以保留CoordinatorLayout和AppBarLayout,以防您以后想要添加animation。


根据我的理解,该属性似乎通常做的是计算整个AppBarLayout UI组件的高度。 无论高度是多少,使用带有@ string / appbar_scrolling_view_behaviour的layout_behaviour属性的UI组件都将自动显示在AppBarLayout的正下方。

通过这种方式,无需对应该在AppBarLayout下的UI中的任何顶部边距进行硬编码。

在下面的代码中, include_app_bar_with_tabs_layout(AppBarLayout)的固定高度为200dp(可以是wrap_content或其他任何东西)。 然后包含屏幕内容的RelativeLayout使用layout_behaviour属性。


看看下面的代码和UI图片:

    android:layout_height="200dp" />  app:layout_behavior="@string/appbar_scrolling_view_behavior">     

在此处输入图像描述