#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 не изменяется, чтобы освободить место для программной клавиатуры. Скорее, содержимое окна автоматически перемещается, так что текущий фокус никогда не скрывается клавиатурой, и пользователи всегда могут видеть, что они печатают. Обычно это менее желательно, чем изменение размера, поскольку пользователю может потребоваться закрыть программную клавиатуру, чтобы получить доступ к скрытым частям окна и взаимодействовать с ними.