本文整理了Java中android.view.View.dispatchTouchEvent()
方法的一些代码示例,展示了View.dispatchTouchEvent()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。View.dispatchTouchEvent()
方法的具体详情如下:
包路径:android.view.View
类名称: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);
内容来源于网络,如有侵权,请联系作者删除!