类android.support.v4.view.ViewParentCompat源码实例Demo

下面列出了怎么用android.support.v4.view.ViewParentCompat的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: customview-samples   文件: NestedChildHelper.java
/**
 * Stop a nested scroll in progress.
 *
 * <p>This is a delegate method. Call it from your {@link android.view.View View} subclass
 * method/{@link android.support.v4.view.NestedScrollingChild2} interface method with the same
 * signature to implement the standard policy.</p>
 */
public void stopNestedScroll(@ViewCompat.NestedScrollType int type) {
    ViewParent parent = getNestedScrollingParentForType(type);
    if (parent != null) {
        ViewParentCompat.onStopNestedScroll(parent, mView, type);
        setNestedScrollingParentForType(type, null);
    }
}
 
源代码2 项目: customview-samples   文件: NestedChildHelper.java
public boolean dispatchNestedScroll(int dxConsumed, int dyConsumed,
                                    int dxUnconsumed, int dyUnconsumed, @Nullable int[] offsetInWindow,
                                    @ViewCompat.NestedScrollType int type) {
    if (isNestedScrollingEnabled()) {
        //获取实现了NestedScrollingParent2或NestedScrollingParent的祖辈控件,如果没有则为null
        final ViewParent parent = getNestedScrollingParentForType(type);
        if (parent == null) {
            //没有实现NestedScrollingParent2或NestedScrollingParent的祖辈控件,则不作任何处理
            return false;
        }

        if (dxConsumed != 0 || dyConsumed != 0 || dxUnconsumed != 0 || dyUnconsumed != 0) {
            int startX = 0;
            int startY = 0;
            if (offsetInWindow != null) {
                mView.getLocationInWindow(offsetInWindow);
                startX = offsetInWindow[0];
                startY = offsetInWindow[1];
            }

            //将嵌套滑动事件分发给祖辈控件的onNestedScroll方法
            ViewParentCompat.onNestedScroll(parent, mView, dxConsumed,
                    dyConsumed, dxUnconsumed, dyUnconsumed, type);

            if (offsetInWindow != null) {
                mView.getLocationInWindow(offsetInWindow);
                offsetInWindow[0] -= startX;
                offsetInWindow[1] -= startY;
            }
            return true;
        } else if (offsetInWindow != null) {
            // No motion, no dispatch. Keep offsetInWindow up to date.
            offsetInWindow[0] = 0;
            offsetInWindow[1] = 0;
        }
    }
    return false;
}
 
源代码3 项目: customview-samples   文件: NestedChildHelper.java
/**
 * Dispatch a nested fling operation to the current nested scrolling parent.
 *
 * <p>This is a delegate method. Call it from your {@link android.view.View View} subclass
 * method/{@link android.support.v4.view.NestedScrollingChild} interface method with the same
 * signature to implement the standard policy.</p>
 *
 * @return true if the parent consumed the nested fling
 */
public boolean dispatchNestedFling(float velocityX, float velocityY, boolean consumed) {
    if (isNestedScrollingEnabled()) {
        ViewParent parent = getNestedScrollingParentForType(TYPE_TOUCH);
        if (parent != null) {
            return ViewParentCompat.onNestedFling(parent, mView, velocityX,
                    velocityY, consumed);
        }
    }
    return false;
}
 
源代码4 项目: customview-samples   文件: NestedChildHelper.java
/**
 * Dispatch a nested pre-fling operation to the current nested scrolling parent.
 *
 * <p>This is a delegate method. Call it from your {@link android.view.View View} subclass
 * method/{@link android.support.v4.view.NestedScrollingChild} interface method with the same
 * signature to implement the standard policy.</p>
 *
 * @return true if the parent consumed the nested fling
 */
public boolean dispatchNestedPreFling(float velocityX, float velocityY) {
    if (isNestedScrollingEnabled()) {
        ViewParent parent = getNestedScrollingParentForType(TYPE_TOUCH);
        if (parent != null) {
            return ViewParentCompat.onNestedPreFling(parent, mView, velocityX,
                    velocityY);
        }
    }
    return false;
}
 
源代码5 项目: letv   文件: ExploreByTouchHelper.java
public boolean sendEventForVirtualView(int virtualViewId, int eventType) {
    if (virtualViewId == Integer.MIN_VALUE || !this.mManager.isEnabled()) {
        return false;
    }
    ViewParent parent = this.mView.getParent();
    if (parent == null) {
        return false;
    }
    return ViewParentCompat.requestSendAccessibilityEvent(parent, this.mView, createEvent(virtualViewId, eventType));
}
 
源代码6 项目: MiBandDecompiled   文件: ExploreByTouchHelper.java
public boolean sendEventForVirtualView(int l, int i1)
{
    android.view.ViewParent viewparent;
    if (l != 0x80000000 && g.isEnabled())
    {
        if ((viewparent = h.getParent()) != null)
        {
            AccessibilityEvent accessibilityevent = a(l, i1);
            return ViewParentCompat.requestSendAccessibilityEvent(viewparent, h, accessibilityevent);
        }
    }
    return false;
}
 
源代码7 项目: customview-samples   文件: NestedChildHelper.java
public boolean dispatchNestedPreScroll(int dx, int dy, @Nullable int[] consumed,
                                       @Nullable int[] offsetInWindow, @ViewCompat.NestedScrollType int type) {
    if (isNestedScrollingEnabled()) {
        //获取实现了NestedScrollingParent2或NestedScrollingParent的祖辈控件,如果没有则为null
        final ViewParent parent = getNestedScrollingParentForType(type);
        if (parent == null) {
            //没有实现NestedScrollingParent2或NestedScrollingParent的祖辈控件,则不作任何处理
            return false;
        }

        if (dx != 0 || dy != 0) {
            int startX = 0;
            int startY = 0;
            if (offsetInWindow != null) {
                mView.getLocationInWindow(offsetInWindow);
                startX = offsetInWindow[0];
                startY = offsetInWindow[1];
            }

            if (consumed == null) {
                if (mTempNestedScrollConsumed == null) {
                    mTempNestedScrollConsumed = new int[2];
                }
                consumed = mTempNestedScrollConsumed;
            }
            consumed[0] = 0;
            consumed[1] = 0;

            //将嵌套滑动事件分发给祖辈控件的onNestedPreScroll方法
            ViewParentCompat.onNestedPreScroll(parent, mView, dx, dy, consumed, type);

            if (offsetInWindow != null) {
                mView.getLocationInWindow(offsetInWindow);
                offsetInWindow[0] -= startX;
                offsetInWindow[1] -= startY;
            }
            return consumed[0] != 0 || consumed[1] != 0;
        } else if (offsetInWindow != null) {
            offsetInWindow[0] = 0;
            offsetInWindow[1] = 0;
        }
    }
    return false;
}
 
/**
 * Populates an event of the specified type with information about an item
 * and attempts to send it up through the view hierarchy.
 * <p>
 * You should call this method after performing a user action that normally
 * fires an accessibility event, such as clicking on an item.
 *
 * <pre>public void performItemClick(T item) {
 *   ...
 *   sendEventForVirtualViewId(item.id, AccessibilityEvent.TYPE_VIEW_CLICKED);
 * }
 * </pre>
 *
 * @param virtualViewId The virtual view id for which to send an event.
 * @param eventType The type of event to send.
 * @return true if the event was sent successfully.
 */
public boolean sendEventForVirtualView(int virtualViewId, int eventType) {
    if ((virtualViewId == INVALID_ID) || !mManager.isEnabled()) {
        return false;
    }

    final ViewParent parent = mView.getParent();
    if (parent == null) {
        return false;
    }

    final AccessibilityEvent event = createEvent(virtualViewId, eventType);
    return ViewParentCompat.requestSendAccessibilityEvent(parent, mView, event);
}
 
/**
 * Populates an event of the specified type with information about an item
 * and attempts to send it up through the view hierarchy.
 * <p>
 * You should call this method after performing a user action that normally
 * fires an accessibility event, such as clicking on an item.
 *
 * <pre>public void performItemClick(T item) {
 *   ...
 *   sendEventForVirtualViewId(item.id, AccessibilityEvent.TYPE_VIEW_CLICKED);
 * }
 * </pre>
 *
 * @param virtualViewId The virtual view id for which to send an event.
 * @param eventType The type of event to send.
 * @return true if the event was sent successfully.
 */
public boolean sendEventForVirtualView(int virtualViewId, int eventType) {
    if ((virtualViewId == INVALID_ID) || !mManager.isEnabled()) {
        return false;
    }

    final ViewParent parent = mView.getParent();
    if (parent == null) {
        return false;
    }

    final AccessibilityEvent event = createEvent(virtualViewId, eventType);
    return ViewParentCompat.requestSendAccessibilityEvent(parent, mView, event);
}
 
源代码10 项目: V.FlyoutTest   文件: ExploreByTouchHelper.java
/**
 * Populates an event of the specified type with information about an item
 * and attempts to send it up through the view hierarchy.
 * <p>
 * You should call this method after performing a user action that normally
 * fires an accessibility event, such as clicking on an item.
 *
 * <pre>public void performItemClick(T item) {
 *   ...
 *   sendEventForVirtualViewId(item.id, AccessibilityEvent.TYPE_VIEW_CLICKED);
 * }
 * </pre>
 *
 * @param virtualViewId The virtual view id for which to send an event.
 * @param eventType The type of event to send.
 * @return true if the event was sent successfully.
 */
public boolean sendEventForVirtualView(int virtualViewId, int eventType) {
    if ((virtualViewId == INVALID_ID) || !mManager.isEnabled()) {
        return false;
    }

    final ViewParent parent = mView.getParent();
    if (parent == null) {
        return false;
    }

    final AccessibilityEvent event = createEvent(virtualViewId, eventType);
    return ViewParentCompat.requestSendAccessibilityEvent(parent, mView, event);
}
 
源代码11 项目: guideshow   文件: ExploreByTouchHelper.java
/**
 * Populates an event of the specified type with information about an item
 * and attempts to send it up through the view hierarchy.
 * <p>
 * You should call this method after performing a user action that normally
 * fires an accessibility event, such as clicking on an item.
 *
 * <pre>public void performItemClick(T item) {
 *   ...
 *   sendEventForVirtualViewId(item.id, AccessibilityEvent.TYPE_VIEW_CLICKED);
 * }
 * </pre>
 *
 * @param virtualViewId The virtual view id for which to send an event.
 * @param eventType The type of event to send.
 * @return true if the event was sent successfully.
 */
public boolean sendEventForVirtualView(int virtualViewId, int eventType) {
    if ((virtualViewId == INVALID_ID) || !mManager.isEnabled()) {
        return false;
    }

    final ViewParent parent = mView.getParent();
    if (parent == null) {
        return false;
    }

    final AccessibilityEvent event = createEvent(virtualViewId, eventType);
    return ViewParentCompat.requestSendAccessibilityEvent(parent, mView, event);
}
 
 类所在包
 同包方法