У меня есть viewpager с 4 фрагментами, есть RecyclerView и SwipeRefreshLayout в каждом фрагменте. XML-код, как это:получить неправильное положение в recyclerview, которое в фрагменте с viewpager
<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 слева направо, я получаю RecyclerView в Fragment как
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 со страницы А на страницу Б и на страницу C , когда на странице C recyclerView не находится в верхней части (findFirstCompletelyVisibleItemPosition не равно 0), но в то время я не могу получить findFirstCompletelyVisibleItemPosition при переключении на страницу C, поэтому swipeRefreshWidget может обновляться, но я хочу, чтобы он не мог обновить. вот так. PS.the recyclerView на странице B находится вверху, но на страницах A и стр. C recyclerView находится посередине.