如何将ViewPager放入ScrollView并将所有视图作为一个部分滚动?

时间:2019-02-28 16:03:39

标签: android android-viewpager scrollview


我有一个,其中里面有,就像follwoing

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

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">


                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">

                    <!--someViews-->

                </LinearLayout>


                <!--then viewPager-->
                <androidx.viewpager.widget.ViewPager
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />

            </LinearLayout>

        </ScrollView>

然后,视图分页器也会容纳一些,它们也具有较高的视图。 问题是滚动视图不滚动,因为该视图不需要滚动,但是viewpager片段内部的视图不滚动 因此,是否可以将包括内部视图寻呼机的整个视图滚动为一个视图? 我所说的是,我不需要将viewpager片段作为单独的部分进行滚动,而需要将其作为活动视图的一部分进行滚动。

谢谢

1 个答案:

答案 0 :(得分:1)

我相信您要查找的设置可以使用NestedScrollView小部件在CoordinatorLayout中工作,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
  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">

  <androidx.core.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp">

    <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="vertical">

      <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:textAppearance="@style/Base.TextAppearance.AppCompat.Display1" />

      <TextView
        android:id="@+id/subTitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/subtitle"
        android:textAppearance="@style/Base.TextAppearance.AppCompat.Body1" />

      <androidx.viewpager.widget.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="300dp" />
    </LinearLayout>

  </androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

我刚刚在一个带有Fragment中单个文本视图的示例项目中对此进行了测试,并且能够滚动视图和浏览页面。

请注意:我确实必须为ViewPager提供特定的高度才能显示。

祝你好运,编码愉快!