ViewPager 不适用于 scrollView

ViewPager doesnt work with a scrollView

这是我在 ScrollView 中添加 Tablayout 和 ViewPager 的布局。

一切正常,但 viewPager 片段不显示任何内容。

这是我的 xml 布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:background="@color/colorPrimary">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:id="@+id/toolTitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:textAppearanceLarge"
                android:textColor="@android:color/white"
                android:textStyle="bold"
                tools:text="Exemplo"
                android:layout_marginLeft="12dp"
                android:layout_marginStart="12dp"
                android:layout_centerVertical="true"
                android:layout_toRightOf="@+id/back_arrow"
                android:layout_toEndOf="@+id/back_arrow" />

            <ImageView
                android:paddingTop="2dp"
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:layout_alignParentLeft="true"
                android:layout_centerVertical="true"
                android:src="@drawable/back_arrow"
                android:id="@+id/back_arrow" />
        </RelativeLayout>

    </android.support.v7.widget.Toolbar>

    <ScrollView
        android:layout_below="@id/toolBar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/restau_image"
            android:layout_width="match_parent"
            android:layout_height="210dp"
            android:scaleType="centerCrop"
            tools:src="@drawable/catina2" />

        <LinearLayout
            android:id="@+id/linear_clock"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/restau_image"
            android:layout_marginLeft="16dp"
            android:orientation="vertical">

            <ImageView
                android:id="@+id/clock"
                android:layout_width="36dp"
                android:layout_height="36dp"
                android:layout_marginBottom="8dp"
                android:layout_marginTop="16dp"
                tools:src="@drawable/clock" />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:orientation="horizontal">

                <TextView
                    android:id="@+id/almoco_textView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="8dp"
                    android:textAppearance="?android:textAppearanceMedium"
                    android:textColor="@android:color/black"
                    android:textSize="18sp"
                    android:textStyle="bold"
                    tools:text="Almoço" />

                <TextView
                    android:id="@+id/almoco_time"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:textAppearanceMedium"
                    android:textColor="@android:color/black"
                    android:textSize="18sp"
                    tools:text="11:30 - 14:30" />

                <ImageView
                    android:id="@+id/arrow_down"
                    android:layout_width="28dp"
                    android:layout_height="28dp"
                    android:layout_marginLeft="12dp"
                    tools:src="@drawable/arow_down" />

            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp">

                <TextView
                    android:id="@+id/jantar_textView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="20dp"
                    android:textAppearance="?android:textAppearanceMedium"
                    android:textColor="@android:color/black"
                    android:textSize="18sp"
                    android:textStyle="bold"
                    tools:text="Jantar" />

                <TextView
                    android:id="@+id/jantar_time"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:textAppearanceMedium"
                    android:textColor="@android:color/black"
                    android:textSize="18sp"
                    tools:text="18:30 - 20:30" />

            </LinearLayout>

            <TextView
                android:id="@+id/open_option"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:layout_marginTop="4dp"
                android:textAppearance="?android:textAppearanceMedium"
                android:textColor="@android:color/black"
                android:textSize="18sp"
                tools:text="Aberto de segunda à sexta Fechado aos feriados" />

        </LinearLayout>

        <View
            android:id="@+id/first_line"
            android:layout_width="320dp"
            android:layout_height="2dp"
            android:layout_below="@id/linear_clock"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="8dp"
            android:background="#BDBDBD">

        </View>

        <LinearLayout
            android:id="@+id/linear_info"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/first_line"
            android:layout_marginLeft="16dp"
            android:orientation="vertical">

            <ImageView
                android:id="@+id/info"
                android:layout_width="36dp"
                android:layout_height="36dp"
                android:layout_marginBottom="8dp"
                android:layout_marginTop="16dp"
                tools:src="@drawable/info" />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:orientation="horizontal">

                <TextView
                    android:id="@+id/pp_textView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:textAppearanceMedium"
                    android:textColor="@android:color/black"
                    android:textSize="18sp"
                    tools:text="Prato principal" />

                <TextView
                    android:id="@+id/pp_price"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="18dp"
                    android:textAppearance="?android:textAppearanceMedium"
                    android:textColor="@android:color/black"
                    android:textSize="18sp"
                    android:textStyle="bold"
                    tools:text="3€" />

            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="4dp"
                android:orientation="horizontal">

                <TextView
                    android:id="@+id/mp_textView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:textAppearanceMedium"
                    android:textColor="@android:color/black"
                    android:textSize="18sp"
                    tools:text="Mini Prato" />

                <TextView
                    android:id="@+id/mp_price"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="52dp"
                    android:textAppearance="?android:textAppearanceMedium"
                    android:textColor="@android:color/black"
                    android:textSize="18sp"
                    android:textStyle="bold"
                    tools:text="2.5€" />

            </LinearLayout>

        </LinearLayout>

        <View
            android:id="@+id/second_line"
            android:layout_width="320dp"
            android:layout_height="2dp"
            android:layout_below="@id/linear_info"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="8dp"
            android:background="#BDBDBD">

        </View>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/second_line"
            android:orientation="vertical">

            <android.support.design.widget.TabLayout
                android:id="@+id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

            <android.support.v4.view.ViewPager
                android:id="@+id/viewpager"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/tabs" />
        </LinearLayout>

    </RelativeLayout>

    </ScrollView>

</RelativeLayout>

如您所见,我已尝试 android:fillViewport="true",但它不起作用... P.s 很抱歉代码太长了,我真的需要尽快找到解决方案...这似乎唯一可行的方法是在 ViewPager

中添加一些高度

尝试替换此代码

<ScrollView
    android:layout_below="@id/toolBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fillViewport="true"

提供滚动视图 wrap_content
也将这些行添加到您的 ViewPager xml 并将解决问题
Read here您遇到了同样的问题!

android:layout_marginBottom="?attr/actionBarSize"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 

您的布局内容超出了 ScrollView 的视口(屏幕高度)。所以在这种类型的布局结构中,你唯一能做的就是为你的 ViewPager 设置一个固定的高度。然后只有您可以查看您的 ViewPager 内容。为您的 ViewPager

尝试以下代码
     <android.support.v4.view.ViewPager
                android:id="@+id/viewpager"
                android:layout_width="match_parent"
                android:layout_height="300dp"
                android:layout_below="@id/tabs" />