[英]ScrollView doesn't scroll in a ViewPager
在我的应用程序中,我使用工具栏下的TabLayout,并使用ViewPager填充其余空间。 我需要选项卡下的片段之一才能滚动。 尝试使用ScrollView,NestedScrollView和android:fillViewport =“ true”失败。
我查看了关于同一问题的其他问题,尝试了答案中提出的所有建议,但都没有解决我的问题。
包含ViewPager代码的活动:
<?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>
片段的代码:
<?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:id="@+id/user_dashboard_fragment_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
tools:context=".Dashboard">
<androidx.constraintlayout.widget.ConstraintLayout
android:padding="40dp"
android:id="@+id/userInfoContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.github.abdularis.civ.CircleImageView
android:id="@+id/userImage"
android:layout_width="match_parent"
android:layout_height="0dp"
android:padding="20dp"
android:scaleType="fitCenter"
android:src="@drawable/male_user_sample1"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/username_sample"
android:textColor="@color/colorPrimaryDark"
android:textSize="30sp"
app:layout_constraintTop_toBottomOf="@id/userImage" />
<com.ramijemli.percentagechartview.PercentageChartView
android:id="@+id/userLevelProgress"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="20dp"
android:outlineAmbientShadowColor="@color/colorPrimary"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/username"
app:pcv_animDuration="1000"
app:pcv_animInterpolator="anticipate_overshoot"
app:pcv_drawBackground="false"
app:pcv_drawBackgroundBar="false"
app:pcv_mode="ring"
app:pcv_orientation="counter_clockwise"
app:pcv_progress="100"
app:pcv_startAngle="270"
app:pcv_textColor="@color/colorPrimary"
app:pcv_textShadowRadius="100"
app:pcv_textSize="50sp" />
<TextView
android:id="@+id/userLevel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/level_sample"
android:textColor="@color/colorPrimary"
android:textSize="40sp"
app:layout_constraintTop_toBottomOf="@id/userLevelProgress" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
我在代码中找不到导致ViewPager下的片段无法滚动的问题。
Rty这个
在您的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" // <- ****
>
似乎在ScrollView
存在ConstraintLayout
一些错误,请不要忘记,如果您将某个视图的底部约束到约束布局的底部。 Scrollview
无法滚动。 将NestedScrollView
与true视口一起使用对我来说很好
<android.support.v4.widget.NestedScrollView>
......
......
</android.support.v4.widget.NestedScrollView>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.