您的
FragmentContainer
的高度为 wrap_content
,这意味着它不会遵守 constraintTop_toBottomOf
(和类似)属性设置的约束。
使用
0dp
(MATCH_CONSTRAINT
)作为其高度是关键。请阅读更多相关信息这里。
...前两个的工作方式与其他布局类似。最后一个将以匹配设置的约束的方式调整小部件的大小。如果设置了边距,它们将被考虑到计算中。
<androidx.fragment.app.FragmentContainerView
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
app:defaultNavHost="true"
app:layout_constraintBottom_toTopOf="@id/adView"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/appbar"
app:navGraph="@navigation/nav_graph" />