Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android編程開發ScrollView中ViewPager無法正常滑動問題解決方法

Android編程開發ScrollView中ViewPager無法正常滑動問題解決方法

編輯:關於Android編程

本文實例講述了Android編程開發ScrollView中ViewPager無法正常滑動問題解決方法。分享給大家供大家參考,具體如下:

這裡主要介紹如何解決ViewPager在ScrollView中滑動經常失效、無法正常滑動問題。
解決方法只需要在接近水平滾動時ScrollView不處理事件而交由其子View(即這裡的ViewPager)處理即可,重寫ScrollView的onInterceptTouchEvent函數,如下:

package cc.newnews.view; 
import android.content.Context; 
import android.util.AttributeSet; 
import android.view.GestureDetector; 
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent; 
import android.widget.ScrollView; 
public class VerticalScrollView extends ScrollView {
  private GestureDetector mGestureDetector; 
  public VerticalScrollView(Context context, AttributeSet attrs) {
    super(context, attrs); 
    mGestureDetector = new GestureDetector(context, new YScrollDetector());
  } 
  @Override 
  public boolean onInterceptTouchEvent(MotionEvent ev) {
    return super.onInterceptTouchEvent(ev) 
        && mGestureDetector.onTouchEvent(ev); 
  } 
  class YScrollDetector extends SimpleOnGestureListener {
    @Override 
    public boolean onScroll(MotionEvent e1, MotionEvent e2, 
        float distanceX, float distanceY) { 
      /** 
       * 如果我們滾動更接近水平方向,返回false,讓子視圖來處理它
       */ 
      return (Math.abs(distanceY) > Math.abs(distanceX)); 
    } 
  } 
} 

再將xml中的ScrollView改為<xxx.xxx.xxx.VerticalScrollView>即包名.重寫的ScrollView的類名)即可。

本方法同樣適用於ScrollView中ListView等其他View無法滾動。

希望本文所述對大家Android程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved