【发布时间】:2016-08-22 15:59:55
【问题描述】:
我有一个带有 4 个 Fragment 的 viewpager,每个 Fragment 中有一个 RecyclerView 和 SwipeRefreshLayout。 xml代码如下:
<android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipe_refresh_widget"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/orderList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background"/>
</android.support.v4.widget.SwipeRefreshLayout>
当我从左到右切换 ViewPager 时,我会在 Fragment 中得到 RecyclerView
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
//set swipeRefreshWidget can not refresh when recyclerView is not in the top
mSwipeRefreshWidget.setEnabled(orderLayoutManager.findFirstCompletelyVisibleItemPosition() == 0);
}
}
});
但是当我将viewpager从A页切换到B页和C页时,在C页时,recyclerView不在顶部(findFirstCompletelyVisibleItemPosition不是0),但当时我无法获取findFirstCompletelyVisibleItemPosition当切换到页面 C 时,swipeRefreshWidget 可以刷新,但我希望它不能刷新。 像这样。 PS.B页的recyclerView在顶部,而A页和C页的recyclerView在中间。
【问题讨论】:
标签: android-fragments caching android-viewpager android-recyclerview swiperefreshlayout