ScrollView在ViewPager内部不起作用

时间:2019-04-10 10:44:04

标签: 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>

有人可以帮我解决滚动问题吗?

2 个答案:

答案 0 :(得分:0)

将您的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 :(得分:0)

基于注释,似乎问题实际上不是滚动,而是覆盖编辑字段的软键盘,因为滚动视图的内容实际上并不大于滚动视图本身,因此没有滚动内容。

>

您需要设置

android:windowSoftInputMode="adjustResize"

android:windowSoftInputMode="adjustPan"

根据您的活动获得预期的行为。

  

“ adjustResize”活动的主窗口总是调整大小以使其   屏幕上的软键盘的空间。

     

“ adjustPan”活动的主窗口未调整大小以腾出空间   软键盘。而是,窗口的内容是   自动平移,以使当前焦点永远不会被遮挡   键盘和用户始终可以看到他们正在输入的内容。这是   通常不如调整大小理想,因为用户可能需要   关闭软键盘以接近并遮盖其中的部分   窗口。