2015-12-30 35 views
2

我正在開發一個包含2個選項卡,列表頁面和地圖(都是片段)的帶有Tablayout的頁面的Android應用程序。列表元素是包含圖像的視圖頁面,但是當用戶到達viewpager中的最後一個圖像時,tablayout會獲取下一個滑動事件並切換到地圖。如果用戶試圖從屏幕右側開始掃描圖像,也會發生這種情況。禁用在Android Tab的標籤頁之間滑動

我想完全切換標籤之間的滑動功能,但沒有找到辦法做到這一點。

這是怎麼設置我的標籤:

ViewPager fragmentPager = (ViewPager) findViewById(R.id.viewpager); 
fragmentPager.setAdapter(new MyPagerAdapter);//extends FragmentPagerAdapter 
TabLayout tabLayout = (TabLayout) findViewById(R.id.tablayout); 
tabLayout.setupWithViewPager(fragmentPager); 
+0

Viewpager'onPageChangeListener'' return false'可能會停止切換標籤頁。但是,如果你粘貼一些源代碼,你在這裏嘗試過的可以幫助我們解決你的查詢。 –

+0

問題在於tablayout不是viewpager,它擴展了Horizo​​ntalScrollView。問題更新了一些代碼,謝謝你的幫助! – Analizer

+0

你是說NonSwipeableViewPager? – sector11

回答

0

你可以自定義視圖尋呼機做到這一點。

製作一個名爲Custom_viewpager的類,並將其擴展到您的XML中。

public class Custom_viewpager extends ViewPager { 

private boolean enabled; 

public Custom_viewpager(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    this.enabled = true; 
} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    return enabled ? super.onTouchEvent(event) : false; 
} 

@Override 
public boolean onInterceptTouchEvent(MotionEvent event) { 
    return enabled ? super.onInterceptTouchEvent(event) : false; 
} 

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

public boolean isPagingEnabled() { 
    return enabled; 
} 

當你想禁用刷卡只需添加這兩行。

viewPager.setPagingEnabled(false); 
viewPager.beginFakeDrag(); 

讓我知道它是否有幫助。 :)