Android禁止ViewPager的左右滑動

2021-07-10 06:06:12 字數 1180 閱讀 9496

有時候在開發中會遇到一些「詭異」的要求,比如在viewpager中嵌入listview,或者再嵌入乙個viewpager,那麼在滑動的時候就會造成被嵌入的xxview不能滑動了,那麼現在就把最外層的viewpager禁止滑動吧,讓被嵌入的xxview獲得滑動事件好了。關於解決方法,網上也有很多說法,基本上是一致的,但是需要理解這個android下的事件分發機制才行,不明白事件分發機制的,上網查些資料看看,然後我這裡也有簡單的介紹,請參看部落格android自定義控制項——側滑選單的下方。

怎樣禁止viewpager左右滑動呢?大致就是重寫viewpager,覆蓋viewpager的onintercepttouchevent(motionevent arg0)方法和ontouchevent(motionevent arg0)方法,這兩個方法的返回值都是boolean型別的,只需要將返回值改為false,那麼viewpager就不會消耗掉手指滑動的事件了,轉而傳遞給上層view去處理或者該事件就直接終止了。下面是我的自定義viewpager。

public class noscrollviewpager extends viewpager 

public noscrollviewpager(context context)

public void setnoscroll(boolean noscroll)

@override

public void scrollto(int x, int y)

@override

public boolean ontouchevent(motionevent arg0)

@override

public boolean onintercepttouchevent(motionevent arg0)

@override

public void setcurrentitem(int item, boolean smoothscroll)

@override

public void setcurrentitem(int item)

}

以上**特別簡單,大家可以直接拷貝使用,無需做任何修改。為了操作方便,我在這個自定義的viewpager裡設定了乙個boolean型別的控制變數,並且向外提供了控制viewpager是否禁止滑動的方法,這樣就顯得靈活一點了。以下是自定義viewpager在布局檔案中的定義。

Android禁止旋轉螢幕

禁止螢幕隨手機旋轉變化 有時候我們希望讓乙個程式的介面始終保持在乙個方向,不隨手機方向旋轉而變化 在androidmanifest.xml的每乙個需要禁止轉向的activity配置中加入android screenorientation landscape 屬性。landscape 橫向 portr...

android禁止分屏實現

原文 因為很多應用的自身問題,在分屏模式下會出現layout錯亂的現象。所以有些應用是不支援分屏模式的。下面我們介紹三種禁止分屏模式的方法。由最簡單實用,到稍微麻煩但一律秒殺的。方法一 android resizeableactivity false false表示不支援分屏模式,true表示支援分...

Android禁止ViewPager的左右滑動

有時候在開發中會遇到一些 詭異 的要求,比如在viewpager中嵌入listview,或者再嵌入乙個viewpager,那麼在滑動的時候就會造成被嵌入的xxview不能滑動了,那麼現在就把最外層的viewpager禁止滑動吧,讓被嵌入的xxview獲得滑動事件好了。關於解決方法,網上也有很多說法,...