Как заставить ViewPager поместить внутри ScrollView и прокрутить все представление как одну часть? - PullRequest
0 голосов
/ 28 февраля 2019


У меня есть , у которой внутри как у следующих

            <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>

ТогдаПейджер содержит несколько , которые тоже имеют высокий вид.Проблема заключается в том, что представление прокрутки не прокручивается, поскольку представление не нужно прокручивать, но представление внутри фрагмента окна просмотра не прокручивается, поэтому можно ли сделать весь вид, включая прокрутку пейджера внутреннего вида, одним видом?То, что я говорю, что мне не нужно прокручивать фрагмент окна просмотра как отдельную часть, мне нужно прокручивать его как часть вида деятельности.

Спасибо

1 Ответ

0 голосов
/ 28 февраля 2019

Полагаю, что нужная вам установка будет работать внутри CoordinatorLayout с использованием виджета NestedScrollView, например:

<?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>

Я только что проверил это с примером проекта с одним текстовым представлением во фрагменте иМне удалось как прокрутить представление, так и пролистать страницы.

Обратите внимание, хотя : мне пришлось предоставить конкретную высоту для ViewPager , чтобыэто для отображения.

Удачи и удачного кодирования!

...