ViewPager有個監聽事件的回調方法,ViewPager.addOnPageChangeListener(this); java
複寫裏面onPageScrollStateChange方法ide
此方法是在狀態改變的時候調用,其中arg0這個參數有三種狀態(0,1,2)。state==1的時,正在滑動,state==2的時滑動完畢,state==0 無事件.
this
當頁面開始滑動的時候,三種狀態的變化順序爲(1,2,0)spa
因此能夠判斷viewPager目前的狀態來控制SwipeRefreshLayout是否可滑。code
private class MyPageChangeListener implements ViewPager.OnPageChangeListener { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { enableDisableSwipeRefresh(state == ViewPager.SCROLL_STATE_IDLE); } private void enableDisableSwipeRefresh(boolean b) { if (swipe != null) { swipe.setEnabled(b); } } }
}
事件