我的应用程序顶部有一个工具栏,底部有一个BottomNavigationView(又名Tab控制器)。
我需要设置一个Frame布局,以便填补它们之间的空白。这将保留选定选项卡的内容。
这听起来很简单,我有点惊讶我在这里遇到了问题。
我曾尝试使用layout_above和layout_below,但无法渲染帧(背景为黄色,因此我可以看到它)。除非那是我添加一个明确的高度,显然我不想这样做。
请提出任何想法:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="#007AFF"
app:layout_scrollFlags="scroll|enterAlways"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Dark" />
<FrameLayout
android:id="@+id/frame_fragmentholder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/yellow"
android:layout_below="@id/toolbar"
android:layout_above="@id/bottom_nav"/>
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_nav"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:itemIconTint="@drawable/selector"
app:itemTextColor="@drawable/selector"
android:background="#007AFF"
app:menu="@menu/bottombar_menu" />
</RelativeLayout>
答案 0 :(得分:0)
答案似乎是将Frame的下边缘设置为底部导航栏的下边缘,但是也可以通过添加margin_bottom属性来允许导航栏的高度。这样可以使Frame的底边= =底栏的上边缘。
android:layout_alignBottom="@+id/bottom_nav"
android:layout_marginBottom="?attr/actionBarSize"
<FrameLayout
android:id="@+id/frame_fragmentholder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/yellow"
android:layout_below="@id/toolbar"
layout_alignBottom="@+id/bottom_nav"
android:layout_marginBottom="?attr/actionBarSize" />