解決SwipeRefreshLayout內巢狀ViewPager,造成的滑動衝突
阿新 • • 發佈:2019-02-04
提出問題:在SwipeRefreshLayout內巢狀ViewPager時,會造成ViewPager滑動時不靈敏或觸發SwipeRefreshLayout的下拉重新整理事件。
解決思路:在ViewPager滑動時禁止SwipeRefreshLayout滑動,ViewPager滑動結束解禁SwipeRefreshLayout滑動。
關鍵程式碼:
viewpager.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_MOVE: mSwipeRefreshLayout.setEnabled(false); break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: mSwipeRefreshLayout.setEnabled(true); break; } return false; } });