ScrollView不在ViewPager中滚动

时间:2019-06-20 00:40:36

标签: java android xml android-viewpager scrollview

在我的应用程序中,我使用工具栏下的TabLayout,并使用ViewPager填充其余空间。我需要选项卡下的片段之一才能滚动。尝试使用ScrollView,NestedScrollView和android:fillViewport =“ true”失败。

我查看了有关同一问题的其他问题,尝试了答案中提出的任何建议,但它们都未能解决我的问题。

包含ViewPager的代码的活动:

time.strftime

片段的代码:

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

<androidx.constraintlayout.widget.ConstraintLayout 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:orientation="vertical"
    tools:context=".UserProfile">

    <include
        android:id="@+id/userToolbar"
        layout="@layout/user_info_toolbar_layout" />

    <com.google.android.material.tabs.TabLayout
        android:id="@+id/tabLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@id/userToolbar"
        android:background="@android:color/holo_blue_light"
        app:tabSelectedTextColor="@android:color/white"
        app:tabTextColor="@android:color/black">

        <com.google.android.material.tabs.TabItem
            android:id="@+id/dashboardTab"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/dashboard_tab_text_en" />

        <com.google.android.material.tabs.TabItem
            android:id="@+id/statisticsTab"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/statistics_tab_text_en" />

    </com.google.android.material.tabs.TabLayout>

    <androidx.viewpager.widget.ViewPager
        android:id="@+id/userInfoViewPager"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@id/tabLayout" />


</androidx.constraintlayout.widget.ConstraintLayout>

我在代码中找不到导致ViewPager下的片段无法滚动的问题。

2 个答案:

答案 0 :(得分:1)

对此

在您的ViewPager

 <androidx.viewpager.widget.ViewPager
        android:id="@+id/userInfoViewPager"
        android:layout_width="match_parent"
        android:layout_height="0dp"                          // <- ****
        app:layout_constraintBottom_toBottomOf="parent"      // <- ****
        app:layout_constraintTop_toBottomOf="@id/tablayout"
 />

然后,在xml片段中

<ScrollView
    ....
    android:layout_width="match_parent"
    android:layout_height="match_parent"  // <- ****
   >

   <androidx.constraintlayout.widget.ConstraintLayout
        android:padding="40dp"
        android:id="@+id/userInfoContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent" // <- ****
    >

答案 1 :(得分:0)

似乎ConstraintLayout中有ScrollView内有一些错误,请不要忘记,如果您将某些视图的底部约束到布局的底部。 Scrollview无法滚动。在视口为true的情况下使用NestedScrollView对我来说很好

<android.support.v4.widget.NestedScrollView>
        ......
        ......
</android.support.v4.widget.NestedScrollView>