最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Android側(cè)滑菜單和輪播圖之滑動(dòng)沖突問(wèn)題

接手一個(gè)項(xiàng)目,有一個(gè)問(wèn)題需要修改:輪播圖不能手動(dòng)滑動(dòng),手動(dòng)滑動(dòng)輪播圖只會(huì)觸發(fā)側(cè)滑菜單。

創(chuàng)新互聯(lián)建站是一家專(zhuān)注于成都做網(wǎng)站、成都網(wǎng)站制作與策劃設(shè)計(jì),肥城網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:肥城等地區(qū)。肥城做網(wǎng)站價(jià)格咨詢(xún):18982081108

猜測(cè):viewpager控件(輪播圖)的觸摸事件被SlidingMenu控件(側(cè)滑菜單,非第三方項(xiàng)目,乃是上個(gè)開(kāi)發(fā)人員自定義的)攔截了。

基于這個(gè)猜測(cè),我自定義一個(gè)ViewPager,重寫(xiě)dispatchTouchEvent、onInterceptTouchEvent和onTouchEvent,分別在這三個(gè)方法中打印log;

重寫(xiě)SlidingMenu的dispatchTouchEvent、onInterceptTouchEvent和onTouchEvent,同樣打印log。

重新編譯運(yùn)行,手滑輪播圖,log如下:

06-08 09:52:08.394 19424-19424/com.parkingmore E/SlidingMenu: dispatchTouchEvent ev:0
06-08 09:52:08.395 19424-19424/com.parkingmore E/SlidingMenu: onInterceptTouchEvent ev:0
06-08 09:52:08.395 19424-19424/com.parkingmore E/RollViewPager: dispatchTouchEvent ev:0
06-08 09:52:08.395 19424-19424/com.parkingmore E/RollViewPager: onInterceptTouchEvent ev:0
06-08 09:52:08.441 19424-19424/com.parkingmore E/SlidingMenu: dispatchTouchEvent ev:2
06-08 09:52:08.441 19424-19424/com.parkingmore E/SlidingMenu: onInterceptTouchEvent ev:2
06-08 09:52:08.442 19424-19424/com.parkingmore E/SlidingMenu: ACTION_MOVE dx:15.473999
06-08 09:52:08.442 19424-19424/com.parkingmore E/RollViewPager: ACTION_MOVE getCurrentItem():1
06-08 09:52:08.442 19424-19424/com.parkingmore E/RollViewPager: dispatchTouchEvent ev:2
06-08 09:52:08.442 19424-19424/com.parkingmore E/RollViewPager: onInterceptTouchEvent ev:2
06-08 09:52:08.459 19424-19424/com.parkingmore E/SlidingMenu: dispatchTouchEvent ev:2
06-08 09:52:08.459 19424-19424/com.parkingmore E/SlidingMenu: onInterceptTouchEvent ev:2
06-08 09:52:08.459 19424-19424/com.parkingmore E/RollViewPager: dispatchTouchEvent ev:3
06-08 09:52:08.459 19424-19424/com.parkingmore E/RollViewPager: onInterceptTouchEvent ev:3
06-08 09:52:08.477 19424-19424/com.parkingmore E/SlidingMenu: dispatchTouchEvent ev:2
06-08 09:52:08.477 19424-19424/com.parkingmore E/SlidingMenu: onTouchEvent ev:2
06-08 09:52:08.495 19424-19424/com.parkingmore E/SlidingMenu: dispatchTouchEvent ev:2
06-08 09:52:08.495 19424-19424/com.parkingmore E/SlidingMenu: onTouchEvent ev:2
06-08 09:52:08.515 19424-19424/com.parkingmore E/SlidingMenu: dispatchTouchEvent ev:2
06-08 09:52:08.515 19424-19424/com.parkingmore E/SlidingMenu: onTouchEvent ev:2
06-08 09:52:08.533 19424-19424/com.parkingmore E/SlidingMenu: dispatchTouchEvent ev:2
06-08 09:52:08.533 19424-19424/com.parkingmore E/SlidingMenu: onTouchEvent ev:2
06-08 09:52:08.551 19424-19424/com.parkingmore E/SlidingMenu: dispatchTouchEvent ev:2
06-08 09:52:08.551 19424-19424/com.parkingmore E/SlidingMenu: onTouchEvent ev:2
06-08 09:52:08.574 19424-19424/com.parkingmore E/SlidingMenu: dispatchTouchEvent ev:2
06-08 09:52:08.574 19424-19424/com.parkingmore E/SlidingMenu: onTouchEvent ev:2
06-08 09:52:08.594 19424-19424/com.parkingmore E/SlidingMenu: dispatchTouchEvent ev:2
06-08 09:52:08.595 19424-19424/com.parkingmore E/SlidingMenu: onTouchEvent ev:2
06-08 09:52:08.611 19424-19424/com.parkingmore E/SlidingMenu: dispatchTouchEvent ev:2
06-08 09:52:08.612 19424-19424/com.parkingmore E/SlidingMenu: onTouchEvent ev:2
06-08 09:52:08.622 19424-19424/com.parkingmore E/SlidingMenu: dispatchTouchEvent ev:2
06-08 09:52:08.622 19424-19424/com.parkingmore E/SlidingMenu: onTouchEvent ev:2
06-08 09:52:08.623 19424-19424/com.parkingmore E/SlidingMenu: dispatchTouchEvent ev:1

從log中可以看出,該開(kāi)始,還能將滑動(dòng)事件傳遞給ViewPager,之后,就被SlidingMenu攔截了。這個(gè)log證實(shí)了這個(gè)猜想是正確的。

知道了原因就好解決了,我現(xiàn)在要考慮的是:要達(dá)到什么樣的效果。

預(yù)期效果:可以正?;瑒?dòng)輪播圖,當(dāng)輪播圖在第一張時(shí),可以滑到側(cè)滑菜單。

網(wǎng)上有人分享過(guò)類(lèi)似的問(wèn)題。我這里也借鑒了一下。

先來(lái)實(shí)現(xiàn)第一個(gè)功能:可以正?;瑒?dòng)輪播圖。

可以設(shè)一個(gè)全局變量:public static boolean mRollViewPagerTouching;

用來(lái)表示是否在觸摸輪播圖。

在自定義ViewPager中,判斷是否在觸摸輪播圖

public boolean dispatchTouchEvent(MotionEvent ev) {
    switch (ev.getAction()) {
      case MotionEvent.ACTION_MOVE:
        break;
      case MotionEvent.ACTION_DOWN:
        MyApplication.mRollViewPagerTouching = true;
        break;
      case MotionEvent.ACTION_UP:
        MyApplication.mRollViewPagerTouching = false;
        break;
    }
    return super.dispatchTouchEvent(ev);
  }

在SlidingMenu中,做出如下處理

public boolean onInterceptTouchEvent(MotionEvent ev) {
    if (MyApplication.mRollViewPagerTouching){
      return false;
    }
    return super.onInterceptTouchEvent(ev);
  }

重新編譯運(yùn)行,可以正?;瑒?dòng)輪播圖,但是當(dāng)輪播圖在第一張時(shí),不能滑到側(cè)滑菜單。

現(xiàn)在來(lái)做第二個(gè)功能:當(dāng)輪播圖在第一張時(shí),可以滑到側(cè)滑菜單。

這里有兩個(gè)地方要注意:1.當(dāng)輪播圖在第一張時(shí);2.由于我的側(cè)滑菜單是在左邊,需要手指向右滑動(dòng)進(jìn)入側(cè)滑菜單,所以,第二個(gè)條件,應(yīng)該是右滑。

在以上的基礎(chǔ)上,修改自定義ViewPager代碼

public boolean dispatchTouchEvent(MotionEvent ev) {
    //在觸發(fā)時(shí)回去到起始坐標(biāo)
    float x = ev.getX();
    switch (ev.getAction()) {
      case MotionEvent.ACTION_MOVE:
        //獲取到距離差
        float dx = x - downX;
        //防止是按下也判斷
        if (Math.abs(dx) > 8) {
          //通過(guò)距離差判斷方向
          if (dx > 0) {
            //                "右";
            if (getCurrentItem() == 0) {
              MyApplication.mRollViewPagerTouching = false;
            } else {
              MyApplication.mRollViewPagerTouching = true;
            }
          } else {
            //                "左";
            MyApplication.mRollViewPagerTouching = true;
          }
        }
        break;
      case MotionEvent.ACTION_DOWN:
        //將按下時(shí)的坐標(biāo)存儲(chǔ)
        downX = x;
        MyApplication.mRollViewPagerTouching = true;
        break;
      case MotionEvent.ACTION_UP:
        MyApplication.mRollViewPagerTouching = false;
        break;
    }
    return super.dispatchTouchEvent(ev);
  }

再次編譯運(yùn)行,成功達(dá)到預(yù)期效果。


分享標(biāo)題:Android側(cè)滑菜單和輪播圖之滑動(dòng)沖突問(wèn)題
本文地址:http://fisionsoft.com.cn/article/ispgec.html