禁止滑動的NoScrollViewPager
大家經常會使用ViewPager+Fragment,然後在fragment中會有左右滑動的view,當view滑動到最右邊時會自動滑到viewpager的下一個item,如果專案要求ViewPager禁止自動滑動,這自定義的ViewPager就對你有用了!
public class NoScrollViewPager extends ViewPager {
private boolean noScroll = false;public NoScrollViewPager(Context context, AttributeSet attrs) { super(context, attrs); }public NoScrollViewPager(Context context) { super(context); }public void setNoScroll(boolean noScroll) { this.noScroll = noScroll; }@Overridepublic void scrollTo(int x, int y) { super.scrollTo(x, y); }@Overridepublic boolean onTouchEvent(MotionEvent arg0) { if (noScroll) return false; else return super.onTouchEvent(arg0); }@Overridepublic boolean onInterceptTouchEvent(MotionEvent arg0) { if (noScroll) return false; else return super.onInterceptTouchEvent(arg0); }@Overridepublic void setCurrentItem(int item, boolean smoothScroll) { super.setCurrentItem(item, smoothScroll); }@Overridepublic void setCurrentItem(int item) { super.setCurrentItem(item); }
}
用法 在xml中引入,在activity中viewpager.setNoScroll(true);就行了
其實就是處理了一下點選事件,
public boolean onInterceptTouchEvent(MotionEvent ev)
該方法使用者攔截被傳遞過來的事件,用於判斷被傳遞過來的事件是否需要被當前的view進行處理。
return false : 不對事件進行攔截,放行該事件。事件會被傳遞到當前view的子控制元件中,由子控制元件中的dispatchTouchEvent方法進行分發處理。 return true : 攔截該事件,將該事件交給當前view的onTouchEvent方法進行處理。 return super.inInterceptTouchEvent(ev):預設攔截方式,和return true一樣。該事件會被攔截,將該事件交給當前view的onTouchEvent方法進行處理。
我的理解是NoScrollViewPager中的onInterceptTouchEvent方法返回了了false,則沒有消費此事件,會想下傳遞,但是他又沒有子View了!!!
我也就個人理解,,歡迎大家指正!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4692/viewspace-2812858/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 小程式禁止swiper滑動
- Android 禁止ViewPager左右滑動AndroidViewpager
- 禁止彈框底部的內容滑動
- 移動端下彈框禁止背景滑動
- 聊天平臺原始碼,簡單使用 禁止滑動和設定滑動方向原始碼
- 直播商城原始碼,隱藏iframe捲軸,並禁止滑動原始碼
- app直播原始碼,彈出層 加遮罩層 頁面禁止滑動APP原始碼遮罩
- 禁止頁面滾動的方法
- uniapp---app滑動翻頁(上滑、下滑、左滑、右滑)APP
- 2024-11-21 uniapp小程式ios端設定overflow:hidden無法禁止頁面滑動APPiOS
- Android 設定TextView滑動滾動條和滑動效果AndroidTextView
- 移動端左滑右滑元件元件
- Flutter迴圈滑動的PageViewFlutterView
- 一對一原始碼,滑塊驗證,滑塊左右滑動顯示的位置原始碼
- jQuery 效果 – 滑動jQuery
- 滑動條:QSliderIDE
- 關於彈窗的內部滑動穿透底層頁面的滑動的問題穿透
- 直播平臺開發,自定義中間向兩邊滑動的滑動條
- 直播app開發,滑動式的頂部導航欄(左右橫向滑動)APP
- 滑動視窗的最大值
- 仿 “即刻APP” 滑動返回的效果APP
- 直播系統app原始碼,自定義中間向兩邊滑動的滑動條APP原始碼
- Flutter 滑動體系Flutter
- uniapp 滑動切換APP
- Swift全屏滑動返回Swift
- 擼一款”靈動“的滑動按鈕
- UIPikerView 省市區三聯滑動,解決滑動崩潰問題UIView
- 如何禁止win10自動更新 如何禁止win10更新Win10
- win10如何禁止autodesk開機自啟_win10禁止autodesk開機自動啟動的方法Win10
- Windows 10 如何禁止 自動更新Windows
- 遮罩層禁止頁面滾動遮罩
- CollectionView 單個選項卡的滑動View
- 【朝花夕拾】Android自定義View篇之(十一)View的滑動,彈性滑動與自定義PagerViewAndroidView
- 細聊滑動視窗
- 滑動視窗專題
- Flutter之可滑動WidgetFlutter
- wepy 滑動刪除功能
- Sentinel 原理-滑動視窗