中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ViewPager和SlidingPaneLayout的滑動事件沖突怎么辦

發布時間:2021-06-26 11:42:21 來源:億速云 閱讀:155 作者:小新 欄目:移動開發

這篇文章主要為大家展示了“ViewPager和SlidingPaneLayout的滑動事件沖突怎么辦”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“ViewPager和SlidingPaneLayout的滑動事件沖突怎么辦”這篇文章吧。

問題描述:

ViewPager和SlidingPaneLayout的滑動事件沖突。

問題分析:

在手指左右滑動時,SlidingPaneLayout會屏蔽ViewPager的滑動事件。

解決辦法:

自定義SlidingPaneLayout類

import android.content.Context;
import android.support.v4.view.MotionEventCompat;
import android.support.v4.widget.SlidingPaneLayout;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.ViewConfiguration;

public class PagerEnabledSlidingPaneLayout extends SlidingPaneLayout {

  private float mInitialMotionX;
  private float mInitialMotionY;
  private float mEdgeSlop;

  public PagerEnabledSlidingPaneLayout(Context context) {
    this(context, null);
  }

public PagerEnabledSlidingPaneLayout(Context context, 
AttributeSet attrs) {
    this(context, attrs, 0);
  }

public PagerEnabledSlidingPaneLayout(Context context, 
AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);

    ViewConfiguration config = ViewConfiguration.get(context);
    mEdgeSlop = config.getScaledEdgeSlop();
  }

  @Override
  public boolean onInterceptTouchEvent(MotionEvent ev) {

    switch (MotionEventCompat.getActionMasked(ev)) {
      case MotionEvent.ACTION_DOWN: {
        mInitialMotionX = ev.getX();
        mInitialMotionY = ev.getY();
        break;
      }

      case MotionEvent.ACTION_MOVE: {
        final float x = ev.getX();
        final float y = ev.getY();
        if (mInitialMotionX > mEdgeSlop && !isOpen() && canScroll(this, false,
            Math.round(x - mInitialMotionX), Math.round(x), Math.round(y))) { 
          MotionEvent cancelEvent = MotionEvent.obtain(ev);
          cancelEvent.setAction(MotionEvent.ACTION_CANCEL);
          return super.onInterceptTouchEvent(cancelEvent);
        }
      }
    }
    return super.onInterceptTouchEvent(ev);
  }
}

以上是“ViewPager和SlidingPaneLayout的滑動事件沖突怎么辦”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

惠水县| 连南| 加查县| 洱源县| 天气| 台东市| 宕昌县| 冀州市| 尚志市| 颍上县| 油尖旺区| 乌兰县| 霍山县| 高州市| 犍为县| 彭州市| 霸州市| 安达市| 肇庆市| 都匀市| 德格县| 赫章县| 台北市| 当雄县| 巴楚县| 东丽区| 巍山| 隆子县| 黄平县| 资溪县| 伊春市| 如皋市| 彰武县| 博湖县| 新津县| 同江市| 六盘水市| 池州市| 元朗区| 华容县| 桦南县|