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" />
这是我在 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" />