欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

AndroidScrollView嵌套橫向滑動控件時沖突問題

前言:今天在開發(fā)的時候遇到這樣的問題,最外層是ScrollView,里面嵌套了一個橫向滑動的日歷控件,在滑動日歷的時候很卡頓。看到這種問題,自然而然的就會想到scrollview和其他可滑動控件的沖突問題。

十載的寧晉網站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。全網營銷推廣的優(yōu)勢是能夠根據用戶設備顯示端的尺寸不同,自動調整寧晉建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“寧晉網站設計”,“寧晉網站推廣”以來,每個客戶項目都認真落實執(zhí)行。

解決思路

用戶的左右滑動操作被最外層的scrollView控件處理掉了,所以只要讓scrollview對左右滑動事件不監(jiān)聽,讓其子控件處理左右滑動事件 。重寫scrollview的onInterceptTouchEvent方法,當上下滑動時不處理即可。

代碼如下

public void setOnScollChangedListener(OnScollChangedListener onScollChangedListener) {
  this.onScollChangedListener = onScollChangedListener;
}

@Override
protected void onScrollChanged(int x, int y, int oldx, int oldy) {
  super.onScrollChanged(x, y, oldx, oldy);
  if (onScollChangedListener != null) {
    onScollChangedListener.onScrollChanged(this, x, y, oldx, oldy);
  }
}

public interface OnScollChangedListener {

  void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy);

}

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
  switch (ev.getAction()) {
  case MotionEvent.ACTION_DOWN:
    xDistance = yDistance = 0f;
    xLast = ev.getX();
    yLast = ev.getY();
    break;
  case MotionEvent.ACTION_MOVE:
    final float curX = ev.getX();
    final float curY = ev.getY();

    xDistance += Math.abs(curX - xLast);
    yDistance += Math.abs(curY - yLast);
    xLast = curX;
    yLast = curY;

    /**
     * X軸滑動距離大于Y軸滑動距離,也就是用戶橫向滑動時,返回false,ScrollView不處理這次事件,
     * 讓子控件中的TouchEvent去處理,所以橫向滑動的事件交由子控件處理, ScrollView只處理縱向滑動事件
     */
    if (xDistance > yDistance) {
      return false;
    }
  }

  return super.onInterceptTouchEvent(ev);
}
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

當前名稱:AndroidScrollView嵌套橫向滑動控件時沖突問題
文章出自:http://chinadenli.net/article32/gjogpc.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)標簽優(yōu)化做網站服務器托管電子商務外貿建站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網站建設