android.view.View.dispatchTouchEvent()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(8.1k)|赞(0)|评价(0)|浏览(139)

本文整理了Java中android.view.View.dispatchTouchEvent()方法的一些代码示例,展示了View.dispatchTouchEvent()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。View.dispatchTouchEvent()方法的具体详情如下:
包路径:android.view.View
类名称:View
方法名:dispatchTouchEvent

View.dispatchTouchEvent介绍

暂无

代码示例

代码示例来源:origin: stackoverflow.com

public boolean dispatchTouchEvent(MotionEvent ev) {
  if(!onInterceptTouchEvent()){
    for(View child : children){
      if(child.dispatchTouchEvent(ev))
        return true;
    }
  }
  return super.dispatchTouchEvent(ev);
}

代码示例来源:origin: alexvasilkov/GestureViews

@SuppressLint("ClickableViewAccessibility") // Not needed for ViewPager
  @Override
  public boolean onTouch(View view, @NonNull MotionEvent event) {
    // ViewPager will steal touch events during settling regardless of
    // requestDisallowInterceptTouchEvent. We will prevent it here.
    if (!isTouchInProgress && event.getActionMasked() == MotionEvent.ACTION_DOWN) {
      isTouchInProgress = true;
      // Now ViewPager is in drag mode, so it should not intercept DOWN event
      view.dispatchTouchEvent(event);
      isTouchInProgress = false;
      return true;
    }
    // User can touch outside of child view, so we will not have a chance to settle
    // ViewPager. If so, this listener should be called and we will be able to settle
    // ViewPager manually.
    settleViewPagerIfFinished((ViewPager) view, event);
    return true; // We should skip view pager touches to prevent some subtle bugs
  }
};

代码示例来源:origin: eleme/UETool

@Override
public boolean dispatchTouchEvent(MotionEvent event) {
  bindActivity.dispatchTouchEvent(event);
  return super.dispatchTouchEvent(event);
}

代码示例来源:origin: ZieIony/Carbon

@Override
public boolean dispatchTouchEvent(@NonNull MotionEvent event) {
  if (rippleDrawable != null && event.getAction() == MotionEvent.ACTION_DOWN)
    rippleDrawable.setHotspot(event.getX(), event.getY());
  return super.dispatchTouchEvent(event);
}

代码示例来源:origin: robolectric/robolectric

@Override
public boolean injectMotionEvent(MotionEvent event) throws InjectEventSecurityException {
 checkNotNull(event);
 checkState(Looper.myLooper() == Looper.getMainLooper(), "Expecting to be on main thread!");
 loopMainThreadUntilIdle();
 // TODO: temporarily restrict to one view root for now
 getOnlyElement(getViewRoots()).getView().dispatchTouchEvent(event);
 loopMainThreadUntilIdle();
 return true;
}

代码示例来源:origin: bingoogolapple/BGABanner-Android

@Override
  public boolean dispatchTouchEvent(MotionEvent ev) {
    for (int i = 0; i < getChildCount(); i++) {
      View child = getChildAt(i);
      try {
        child.dispatchTouchEvent(ev);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    return true;
  }
}

代码示例来源:origin: facebook/litho

handled = mDelegateView.dispatchTouchEvent(event);

代码示例来源:origin: wangdan/AisenWeiBo

@Override
public boolean dispatchTouchEvent(MotionEvent event) {
  switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:
      pressed = true;
      invalidate();
      break;
    case MotionEvent.ACTION_CANCEL:
    case MotionEvent.ACTION_UP:
      pressed = false;
      invalidate();
      break;
    default:
      break;
  }
  return super.dispatchTouchEvent(event);
}

代码示例来源:origin: ksoichiro/Android-ObservableScrollView

MotionEvent peAdjusted = MotionEvent.obtainNoHistory(pe);
      peAdjusted.offsetLocation(offsetX, offsetY);
      consumed |= childView.dispatchTouchEvent(peAdjusted);
consumed |= childView.dispatchTouchEvent(event);
if (consumed) {
  break;

代码示例来源:origin: ImmortalZ/StereoView

@Override
public boolean dispatchTouchEvent(MotionEvent event) {
  switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:
      getParent().requestDisallowInterceptTouchEvent(true);
      break;
    case MotionEvent.ACTION_MOVE:
      if (isContain(event)) {
        isPressed = true;
        startRipple();
      } else {
        getParent().requestDisallowInterceptTouchEvent(false);
      }
      break;
    case MotionEvent.ACTION_UP:
      break;
  }
  return super.dispatchTouchEvent(event);
}

代码示例来源:origin: facebook/litho

@Test
public void testTouchOutsideBounds() {
 final View view = mock(View.class);
 when(view.getContext()).thenReturn(RuntimeEnvironment.application);
 mTouchDelegate.registerTouchExpansion(0, view, new Rect(0, 0, 10, 10));
 MotionEvent event = MotionEvent.obtain(
   SystemClock.uptimeMillis(),
   SystemClock.uptimeMillis(),
   MotionEvent.ACTION_DOWN,
   100,
   100,
   0);
 mTouchDelegate.onTouchEvent(event);
 verify(view, never()).dispatchTouchEvent(event);
}

代码示例来源:origin: facebook/litho

@Test
 public void testDrawingOrder() {
  final View view1 = mock(View.class);
  when(view1.getContext()).thenReturn(RuntimeEnvironment.application);
  when(view1.dispatchTouchEvent(any(MotionEvent.class)))
    .thenReturn(true);
  mTouchDelegate.registerTouchExpansion(0, view1, new Rect(0, 0, 10, 10));

  final View view2 = mock(View.class);
  when(view2.getContext()).thenReturn(RuntimeEnvironment.application);
  when(view2.dispatchTouchEvent(any(MotionEvent.class)))
    .thenReturn(true);
  mTouchDelegate.registerTouchExpansion(1, view2, new Rect(0, 0, 10, 10));

  MotionEvent event = MotionEvent.obtain(
    SystemClock.uptimeMillis(),
    SystemClock.uptimeMillis(),
    MotionEvent.ACTION_DOWN,
    5,
    5,
    0);

  mTouchDelegate.onTouchEvent(event);

  verify(view1, never()).dispatchTouchEvent(event);
  verify(view2, times(1)).dispatchTouchEvent(event);
 }
}

代码示例来源:origin: facebook/litho

@Test
public void testUnregister() {
 final View view = mock(View.class);
 when(view.getContext()).thenReturn(RuntimeEnvironment.application);
 mTouchDelegate.registerTouchExpansion(0, view, new Rect(0, 0, 10, 10));
 mTouchDelegate.unregisterTouchExpansion(0);
 MotionEvent event = MotionEvent.obtain(
   SystemClock.uptimeMillis(),
   SystemClock.uptimeMillis(),
   MotionEvent.ACTION_DOWN,
   5,
   5,
   0);
 mTouchDelegate.onTouchEvent(event);
 verify(view, never()).dispatchTouchEvent(event);
}

代码示例来源:origin: robolectric/robolectric

@Test
public void dispatchTouchEvent_listensToFalseFromListener() throws Exception {
 final AtomicBoolean called = new AtomicBoolean(false);
 view.setOnTouchListener(new View.OnTouchListener() {
  @Override
  public boolean onTouch(View view, MotionEvent motionEvent) {
   called.set(true); return false;
  }
 });
 MotionEvent event = MotionEvent.obtain(0L, 0L, MotionEvent.ACTION_DOWN, 12f, 34f, 0);
 view.dispatchTouchEvent(event);
 assertThat(shadowOf(view).getLastTouchEvent()).isSameAs(event);
 assertThat(called.get()).isTrue();
}

代码示例来源:origin: facebook/litho

@Test
public void testTouchWithinBounds() {
 final View view = mock(View.class);
 when(view.getContext()).thenReturn(application);
 when(view.getWidth()).thenReturn(4);
 when(view.getHeight()).thenReturn(6);
 mTouchDelegate.registerTouchExpansion(0, view, new Rect(0, 0, 10, 10));
 MotionEvent event = obtain(
   uptimeMillis(),
   uptimeMillis(),
   ACTION_DOWN,
   5,
   5,
   0);
 mTouchDelegate.onTouchEvent(event);
 verify(view, times(1)).dispatchTouchEvent(event);
 assertThat(event.getX()).isEqualTo(2f);
 assertThat(event.getY()).isEqualTo(3f);
}

代码示例来源:origin: beworker/pinned-section-listview

mTouchTarget.dispatchTouchEvent(ev);
  mTouchTarget.dispatchTouchEvent(event);
  event.recycle();

代码示例来源:origin: robolectric/robolectric

@Test
public void dispatchTouchEvent_sendsMotionEventToOnTouchEvent() throws Exception {
 TouchableView touchableView = new TouchableView(context);
 MotionEvent event = MotionEvent.obtain(0L, 0L, MotionEvent.ACTION_DOWN, 12f, 34f, 0);
 touchableView.dispatchTouchEvent(event);
 assertThat(touchableView.event).isSameAs(event);
 view.dispatchTouchEvent(event);
 assertThat(shadowOf(view).getLastTouchEvent()).isSameAs(event);
}

代码示例来源:origin: Flipboard/bottomsheet

cancelEvent.offsetLocation(0, sheetTranslation - getHeight());
    cancelEvent.setAction(MotionEvent.ACTION_CANCEL);
    getSheetView().dispatchTouchEvent(cancelEvent);
    cancelEvent.recycle();
  getSheetView().dispatchTouchEvent(cancelEvent);
  cancelEvent.recycle();
  MotionEvent downEvent = MotionEvent.obtain(event);
  downEvent.setAction(MotionEvent.ACTION_DOWN);
  getSheetView().dispatchTouchEvent(downEvent);
  downEvent.recycle();
  setState(State.EXPANDED);
  getSheetView().dispatchTouchEvent(event);
} else {
getSheetView().dispatchTouchEvent(event);

代码示例来源:origin: TonicArtos/StickyGridHeaders

tempHeader.dispatchTouchEvent(transformEvent(ev, mMotionHeaderPosition));
tempHeader.invalidate();
tempHeader.postDelayed(new Runnable() {
  View tempHeader = getHeaderAt(mMotionHeaderPosition);
  if (tempHeader != null) {
    if (tempHeader.dispatchTouchEvent(transformEvent(ev, mMotionHeaderPosition))) {
      mHeaderChildBeingPressed = true;
      tempHeader.setPressed(true);

代码示例来源:origin: dinuscxj/RecyclerRefreshLayout

mTarget.dispatchTouchEvent(ev);
} else {
  MotionEvent obtain = MotionEvent.obtain(ev);
  obtain.setAction(MotionEvent.ACTION_DOWN);
  mDispatchTargetTouchDown = true;
  mTarget.dispatchTouchEvent(obtain);
  obtain.setAction(MotionEvent.ACTION_CANCEL);
  mDispatchTargetTouchDown = false;
  mTarget.dispatchTouchEvent(obtain);
mTarget.dispatchTouchEvent(ev);

相关文章

微信公众号

最新文章

更多

View类方法