ScrollView не работает внутри ViewPager

#android #android-viewpager #scrollview

#Android #android-viewpager #scrollview

Вопрос:

У меня есть один фрагмент, называемый FeedBackFragment, и это страница ViewPager, и она есть scrollview . Но прокрутка не работает.

У меня есть 2 XML-файла:

parent.xml

         <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">


            <com.google.android.material.tabs.TabLayout
                android:id="@ id/tab_layout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="?attr/colorPrimary"
                android:elevation="6dp"
                android:gravity="center"
                android:minHeight="?attr/actionBarSize"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />

            <androidx.viewpager.widget.ViewPager
                android:id="@ id/pager"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

        </LinearLayout>

I have scrollview inside *feedback.xml* and it's **not** scrolling.

*feedback.xml*


        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <com.promediadesigns.tecosnation.CustomScrollView
                android:layout_width="match_parent"
                android:layout_height="match_parent">

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


                    <EditText
                        android:id="@ id/username"
                        android:layout_width="150dp"
                        android:layout_height="40dp"
                        android:layout_gravity="center"
                        android:layout_marginBottom="10dp"
                        android:background="@drawable/round_et"
                        android:gravity="center"
                        android:hint="Enter Full Name..."
                        android:inputType="textPersonName"
                        android:textColor="#fff"
                        android:textColorHint="#fff"
                        android:textSize="12sp" />


                    <EditText
                        android:id="@ id/email"
                        android:layout_width="150dp"
                        android:layout_height="40dp"
                        android:layout_gravity="center"
                        android:layout_marginBottom="10dp"
                        android:background="@drawable/round_et"
                        android:gravity="center"
                        android:hint="Enter Email..."
                        android:inputType="textEmailAddress"
                        android:textColor="#fff"
                        android:textColorHint="#fff"
                        android:textSize="12sp" />

                    <EditText
                        android:id="@ id/msg"
                        android:layout_width="200dp"
                        android:layout_height="100dp"
                        android:layout_gravity="center"
                        android:layout_marginBottom="5dp"
                        android:background="@drawable/greyround_et"
                        android:hint="Type your message here..."
                        android:inputType="textMultiLine"
                        android:textColor="@color/colorPrimary"
                        android:textColorHint="@color/colorPrimary"
                        android:textSize="15sp" />

                    <Button
                        android:id="@ id/send"
                        android:layout_width="150dp"
                        android:layout_height="60dp"
                        android:layout_gravity="center"
                        android:background="@drawable/send_icon" />


                </LinearLayout>

            </com.promediadesigns.tecosnation.CustomScrollView>

        </LinearLayout>
  

Может кто-нибудь помочь мне с прокруткой?

Комментарии:

1. В следующий раз попробуйте задать вопрос правильно, не все с заглавными буквами, жирным шрифтом и т. Д. xD

2. com.promediadesigns.tecosnation. CustomScrollView что это такое? если вы измените это на обычный scrollview, это сработает?

3. @M.K конечно……

4. @JoachimHaglund это не сработает, если я перейду на обычный ScrollView

5. Является ли содержимое выше, чем scrollview? Предполагается ли вообще прокручивать?

Ответ №1:

Измените свой feedbak.xml чтобы

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

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

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


            <EditText
                android:id="@ id/username"
                android:layout_width="150dp"
                android:layout_height="40dp"
                android:layout_gravity="center"
                android:layout_marginBottom="10dp"

                android:gravity="center"
                android:hint="Enter Full Name..."
                android:inputType="textPersonName"
                android:textColor="#fff"
                android:textColorHint="#fff"
                android:textSize="12sp" />


            <EditText
                android:id="@ id/email"
                android:layout_width="150dp"
                android:layout_height="40dp"
                android:layout_gravity="center"
                android:layout_marginBottom="10dp"
                android:gravity="center"
                android:hint="Enter Email..."
                android:inputType="textEmailAddress"
                android:textColor="#fff"
                android:textColorHint="#fff"
                android:textSize="12sp" />

            <EditText
                android:id="@ id/msg"
                android:layout_width="200dp"
                android:minHeight="100dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginBottom="5dp"
                android:hint="Type your message here..."
                android:inputType="textMultiLine"
                android:textColor="@color/colorPrimary"
                android:textColorHint="@color/colorPrimary"
                android:textSize="15sp" />

            <Button
                android:id="@ id/send"
                android:layout_width="150dp"
                android:layout_height="60dp"
                android:layout_gravity="center"
                />

        </LinearLayout>

    </ScrollView>

</LinearLayout>
  

Комментарии:

1. все еще не прокручивается

2. Что не прокручивается? пейджер или scrollview?

3. scrollview не прокручивается

4. Можете ли вы опубликовать скриншот?

Ответ №2:

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

вам необходимо установить

 android:windowSoftInputMode="adjustResize"
  

или

 android:windowSoftInputMode="adjustPan"
  

о вашей активности, чтобы получить ожидаемое поведение.

«adjustResize» Главное окно действия всегда изменяется, чтобы освободить место для программной клавиатуры на экране.

«adjustPan» Главное окно activity не изменяется, чтобы освободить место для программной клавиатуры. Скорее, содержимое окна автоматически перемещается, так что текущий фокус никогда не скрывается клавиатурой, и пользователи всегда могут видеть, что они печатают. Обычно это менее желательно, чем изменение размера, поскольку пользователю может потребоваться закрыть программную клавиатуру, чтобы получить доступ к скрытым частям окна и взаимодействовать с ними.