使用选项卡布局查看寻呼机超出屏幕边界

View pager with tabs layout is out of screen bounds

我正在使用选项卡布局并在视图寻呼机下方显示所选片段的内容。

在布局之上是选项卡布局,在视图寻呼机之下。问题是:视图寻呼机占用全屏的高度,结果(因为它被限制在导航选项卡上),它的高度超出屏幕,如下所示:

我的xml:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".activities.MeetActivity">

    <com.google.android.material.tabs.TabLayout
        android:id="@+id/navigationTabs"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@drawable/navigation_shadow"
        app:layout_constraintTop_toTopOf="parent"
        app:tabIndicator="@null"
        app:tabMinWidth="@dimen/navigation_height"
        app:tabRippleColor="@null" />

<!--    // the fragment will be displayed here:-->
    <androidx.viewpager.widget.ViewPager
        android:id="@+id/fragmentContainer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@+id/navigationTabs"/>

有没有办法将视图分页器限制在导航选项卡的顶部并强制其高度保持在屏幕范围内?这可能看起来无关紧要,但它会导致片段中的小部件出现在屏幕之外

the view pager takes the height of the full screen

ViewPageronMeasure函数中,wrap_content被计算为容器大小(在本例中,ConstaraintLayout) .

试试这个。

<androidx.viewpager.widget.ViewPager
        android:id="@+id/fragmentContainer"
        android:layout_width="match_parent"
        android:layout_height="0dp" 
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/navigationTabs" />

Here your view pager is taking height of the full screen. Please use below code to show the view pager below your tab :

<androidx.viewpager.widget.ViewPager
        android:id="@+id/fragmentContainer"
        android:layout_width="match_parent"
        android:layout_height="0dp" 
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/navigationTabs" />