我有一个围绕着ViewPager的SwipeRefreshLayout。ViewPager加载的片段包含ScrollView。当我向下滚动时,它运作良好,但是当我向上滚动时,SwipeRefreshLayout会在ScrollView先滚动到顶部之前就激活。我该如何确保ScrollView具有优先级?
当SwipeRefreshLayout位于ScrollView外部的单独片段中时,它可以正常工作,但我需要它位于ViewPager周围的活动中。
以下是相关的布局:
活动:
当SwipeRefreshLayout位于ScrollView外部的单独片段中时,它可以正常工作,但我需要它位于ViewPager周围的活动中。
以下是相关的布局:
活动:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#EEEEEE"
android:fitsSystemWindows="true">
<include layout="@layout/toolbar" />
<io.karim.MaterialTabs
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="@color/primary"
app:mtIndicatorColor="@color/icons"
app:mtIndicatorHeight="2dp"
app:mtSameWeightTabs="true"
app:mtPaddingMiddle="false"
app:mtTextColorSelected="@color/icons"
android:textColor="@color/icons"
android:elevation="4dp"
tools:ignore="UnusedAttribute" />
<android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipeRefresh"
android:layout_height="wrap_content"
android:layout_width="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp" />
</android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>
这是由ViewPager加载的碎片(共有5个选项卡,每个选项卡都有一个):
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="me.sargunvohra.android.purduediningcourts.presenter.MenuFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingStart="@dimen/activity_horizontal_margin"
android:paddingEnd="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
>
<!-- Content snipped for brevity -->
<!-- blah blah... lots of content here -->
</LinearLayout>
</ScrollView>
这里是在GitHub上的仓库HERE,如果您需要更多信息:
androidx.core.widget.NestedScrollView
。 - SqAR.org