片段不在viewpager内滚动

时间:2017-07-13 07:46:47

标签: android android-viewpager android-cardview

我正在使用ViewPager来显示4个不同的片段。

我活动的组件树:

     |_FrameLayout
        |_ LinearLayout (Vertical)
            Toolbar
            ViewPager
            TabLayout 
            RelativeLayout

这是我的第一个片段的组件树:

     ScrollView
         |_LinearLayout(Vertical)
             LinearLayout(Horizontal)             
             |_LinearLayout(Horizontal) 
                 |_CardView
                     TextView
             LinearLayout(Horizontal) 
             LinearLayout(Horizontal) 

但是当设备处于纵向模式时,Fragment内的Viewpager不会滚动。在横向模式下,它会滚动一点(因此滚动工作),但cardview内的视图会缩小。 CardView是否负责所有这些(因为它是可滚动的)?如何解决这个问题?请帮忙。

2 个答案:

答案 0 :(得分:1)

您应该使用NestedScrollView替换ScrollView,以帮助您进行嵌套滚动

答案 1 :(得分:1)

在滚动视图中同时包裹viewpager.xml和fragment.xml,如下所示:

viewpager.xml

{
 user.id &&
 <img className="img-responsive" src={`${API_URL}/${imageLocation}`} />
}

fragment.xml

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

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

        <android.support.v4.view.ViewPager
            android:id="@+id/view_pager_id"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </android.support.v4.view.ViewPager>

    </RelativeLayout>

</ScrollView>

activity.xml

<?xml version="1.0" encoding="utf-8"?>

<ScrollView 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"
    android:fillViewport="true">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/textView6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Text"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

            <!-- Along with other widgets -->

    </android.support.constraint.ConstraintLayout>

</ScrollView>