2016-11-07 40 views
0

當你點擊卡片時(見圖),新活動打開,但如果你水平滑動(錯誤或故意),應該禁用同樣的事情。怎麼做?如何禁用viewPager中的水平滑動操作?

我使用嵌套viewPager。首先是水平viewPager(在這個水平滾動被禁用),你可以看到,並在第一個片段(命名摘要),我已經使用垂直viewPager,它工作正常。問題是如果我嘗試水平滾動,下一個Activity打開(它應該打開點擊卡)。我希望沒有任何事情發生,如果我在卡上水平滾動。

enter image description here

回答

0

You're沒有說清楚你的問題如此虐待假設你想完全阻止viewpager刷卡。

您只需要像這樣擴展viewpager小部件。

public class NonSwipeableViewPager extends ViewPager { 

    private boolean isPagingEnabled = true; 

    public NonSwipeableViewPager(Context context) { 
     super(context); 
    } 

    public NonSwipeableViewPager(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     return this.isPagingEnabled && super.onTouchEvent(event); 
    } 

    @Override 
    public boolean onInterceptTouchEvent(MotionEvent event) { 
    return this.isPagingEnabled && super.onInterceptTouchEvent(event); 
    } 

    public void setPagingEnabled(boolean b) { 
     this.isPagingEnabled = b; 
    } 

}

然後用這個新版本爲你的水平viewpager和setPagingEnabled(假)編程。要小心,你仍然可以通過標籤與viewpager進行交互,它只會阻止滑動事件。

+0

認爲他的問題是,一個新的活動打開卡上的水平和對角滑動,但他只希望它打開卡上的水龍頭......換句話說,他的頁面有垂直滾動,但由於卡大,我們的拇指通常對角地工作,它打開卡片頁面(新活動)而不是滾動。 –

+0

這樣的事情,但他有查看傳呼機上的垂直滾動... http://queforum.com/android-applications/167786-android-how-make-viewpager-swipe-diagonal-swipes.html –