簡體   English   中英

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”,但是它不起作用... Ps對不起,冗長的代碼,我真的需要盡可能快的解決方案...看來可行的唯一方法是通過在ViewPager中添加一些高度

嘗試替換此代碼

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

給scrollview wrap_content
還要在您的ViewPager xml中添加這些行,即可解決問題
在這里閱讀,您遇到同樣的問題!

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

您的布局內容超過ScrollView的viewPort(屏幕高度)。 因此,在這種Layout結構類型中,您唯一可以做的就是為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" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM