Example usage for android.view View getTop

List of usage examples for android.view View getTop

Introduction

In this page you can find the example usage for android.view View getTop.

Prototype

@ViewDebug.CapturedViewProperty
public final int getTop() 

Source Link

Document

Top position of this view relative to its parent.

Usage

From source file:com.abewy.android.apps.klyph.widget.KlyphDrawerLayout.java

void closeDrawers(boolean peekingOnly) {
    boolean needsInvalidate = false;
    final int childCount = getChildCount();
    for (int i = 0; i < childCount; i++) {
        final View child = getChildAt(i);
        final LayoutParams lp = (LayoutParams) child.getLayoutParams();

        if (!isDrawerView(child) || (peekingOnly && !lp.isPeeking)) {
            continue;
        }/*from ww w.  j a v a 2 s  .c o  m*/

        final int childWidth = child.getWidth();

        if (checkDrawerViewGravity(child, Gravity.LEFT)) {
            needsInvalidate |= mLeftDragger.smoothSlideViewTo(child, -childWidth, child.getTop());
        } else {
            needsInvalidate |= mRightDragger.smoothSlideViewTo(child, getWidth(), child.getTop());
        }

        lp.isPeeking = false;
    }

    mLeftCallback.removeCallbacks();
    mRightCallback.removeCallbacks();

    if (needsInvalidate) {
        invalidate();
    }
}

From source file:com.apptentive.android.sdk.view.ApptentiveNestedScrollView.java

/**
 * <p>/*from www .ja v  a 2s. c  o m*/
 * Finds the next focusable component that fits in the specified bounds.
 * </p>
 *
 * @param topFocus look for a candidate is the one at the top of the bounds
 *                 if topFocus is true, or at the bottom of the bounds if topFocus is
 *                 false
 * @param top      the top offset of the bounds in which a focusable must be
 *                 found
 * @param bottom   the bottom offset of the bounds in which a focusable must
 *                 be found
 * @return the next focusable component in the bounds or null if none can
 *         be found
 */
private View findFocusableViewInBounds(boolean topFocus, int top, int bottom) {

    List<View> focusables = getFocusables(View.FOCUS_FORWARD);
    View focusCandidate = null;

    /*
     * A fully contained focusable is one where its top is below the bound's
     * top, and its bottom is above the bound's bottom. A partially
     * contained focusable is one where some part of it is within the
     * bounds, but it also has some part that is not within bounds.  A fully contained
     * focusable is preferred to a partially contained focusable.
     */
    boolean foundFullyContainedFocusable = false;

    int count = focusables.size();
    for (int i = 0; i < count; i++) {
        View view = focusables.get(i);
        int viewTop = view.getTop();
        int viewBottom = view.getBottom();

        if (top < viewBottom && viewTop < bottom) {
            /*
             * the focusable is in the target area, it is a candidate for
             * focusing
             */

            final boolean viewIsFullyContained = (top < viewTop) && (viewBottom < bottom);

            if (focusCandidate == null) {
                /* No candidate, take this one */
                focusCandidate = view;
                foundFullyContainedFocusable = viewIsFullyContained;
            } else {
                final boolean viewIsCloserToBoundary = (topFocus && viewTop < focusCandidate.getTop())
                        || (!topFocus && viewBottom > focusCandidate.getBottom());

                if (foundFullyContainedFocusable) {
                    if (viewIsFullyContained && viewIsCloserToBoundary) {
                        /*
                         * We're dealing with only fully contained views, so
                         * it has to be closer to the boundary to beat our
                         * candidate
                         */
                        focusCandidate = view;
                    }
                } else {
                    if (viewIsFullyContained) {
                        /* Any fully contained view beats a partially contained view */
                        focusCandidate = view;
                        foundFullyContainedFocusable = true;
                    } else if (viewIsCloserToBoundary) {
                        /*
                         * Partially contained view beats another partially
                         * contained view if it's closer
                         */
                        focusCandidate = view;
                    }
                }
            }
        }
    }

    return focusCandidate;
}

From source file:cn.emagsoftware.ui.BugFixedSlidingPaneLayout.java

void updateObscuredViewsVisibility(View panel) {
    final int leftBound = getPaddingLeft();
    final int rightBound = getWidth() - getPaddingRight();
    final int topBound = getPaddingTop();
    final int bottomBound = getHeight() - getPaddingBottom();
    final int left;
    final int right;
    final int top;
    final int bottom;
    if (panel != null && viewIsOpaque(panel)) {
        left = panel.getLeft();//from   w w  w .j a  v  a 2  s  .c  om
        right = panel.getRight();
        top = panel.getTop();
        bottom = panel.getBottom();
    } else {
        left = right = top = bottom = 0;
    }

    for (int i = 0, childCount = getChildCount(); i < childCount; i++) {
        final View child = getChildAt(i);

        if (child == panel) {
            // There are still more children above the panel but they won't be affected.
            break;
        }

        final int clampedChildLeft = Math.max(leftBound, child.getLeft());
        final int clampedChildTop = Math.max(topBound, child.getTop());
        final int clampedChildRight = Math.min(rightBound, child.getRight());
        final int clampedChildBottom = Math.min(bottomBound, child.getBottom());
        final int vis;
        if (clampedChildLeft >= left && clampedChildTop >= top && clampedChildRight <= right
                && clampedChildBottom <= bottom) {
            vis = INVISIBLE;
        } else {
            vis = VISIBLE;
        }
        child.setVisibility(vis);
    }
}

From source file:cn.bingoogolapple.swipebacklayout.BGASwipeBackLayout.java

/**
 * Tests scrollability within child views of v given a delta of dx.
 *
 * @param v      View to test for horizontal scrollability
 * @param checkV Whether the view v passed should itself be checked for scrollability (true),
 *               or just its children (false).
 * @param dx     Delta scrolled in pixels
 * @param x      X coordinate of the active touch point
 * @param y      Y coordinate of the active touch point
 * @return true if child views of v can be scrolled by delta of dx.
 *//*from  www. j av a 2s. co m*/
protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
    if (v instanceof ViewGroup) {
        final ViewGroup group = (ViewGroup) v;
        final int scrollX = v.getScrollX();
        final int scrollY = v.getScrollY();
        final int count = group.getChildCount();
        // Count backwards - let topmost views consume scroll distance first.
        for (int i = count - 1; i >= 0; i--) {
            // TODO: Add versioned support here for transformed views.
            // This will not work for transformed views in Honeycomb+
            final View child = group.getChildAt(i);
            if (x + scrollX >= child.getLeft() && x + scrollX < child.getRight()
                    && y + scrollY >= child.getTop() && y + scrollY < child.getBottom() && canScroll(child,
                            true, dx, x + scrollX - child.getLeft(), y + scrollY - child.getTop())) {
                return true;
            }
        }
    }

    return checkV && ViewCompat.canScrollHorizontally(v, (isLayoutRtlSupport() ? dx : -dx));
}

From source file:com.abewy.android.apps.klyph.widget.KlyphDrawerLayout.java

/**
 * Open the specified drawer view by animating it into view.
 *
 * @param drawerView Drawer view to open
 *//* ww w  .j  a  va  2 s . c o  m*/
public void openDrawer(View drawerView) {
    if (!isDrawerView(drawerView)) {
        throw new IllegalArgumentException("View " + drawerView + " is not a sliding drawer");
    }

    if (mFirstLayout) {
        final LayoutParams lp = (LayoutParams) drawerView.getLayoutParams();
        lp.onScreen = 1.f;
        lp.knownOpen = true;
    } else {
        if (checkDrawerViewGravity(drawerView, Gravity.LEFT)) {
            mLeftDragger.smoothSlideViewTo(drawerView, 0, drawerView.getTop());
        } else {
            mRightDragger.smoothSlideViewTo(drawerView, getWidth() - drawerView.getWidth(),
                    drawerView.getTop());
        }
    }
    invalidate();
}

From source file:com.androzic.vnspeech.MapFragment.java

private void updateMapViewArea() {
    final ViewTreeObserver vto = map.getViewTreeObserver();
    vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
        @SuppressLint("NewApi")
        @SuppressWarnings("deprecation")
        public void onGlobalLayout() {
            View root = getView();
            Rect area = new Rect();
            map.getLocalVisibleRect(area);
            View v = root.findViewById(R.id.topbar);
            if (v != null)
                area.top = v.getBottom();
            v = root.findViewById(R.id.bottombar);
            if (v != null)
                area.bottom = v.getTop();
            if (mapLicense.isShown()) {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB && mapLicense.getRotation() != 0f)
                    area.left = mapLicense.getHeight(); // rotated view does not correctly report it's position
                else
                    area.bottom = mapLicense.getTop();
            }/*from   w w  w . j  ava 2 s  . co m*/
            v = root.findViewById(R.id.rightbar);
            if (v != null)
                area.right = v.getLeft();
            if (mapButtons.isShown()) {
                // Landscape mode
                if (v != null)
                    area.bottom = mapButtons.getTop();
                else
                    area.right = mapButtons.getLeft();
            }
            if (!area.isEmpty())
                map.updateViewArea(area);
            ViewTreeObserver ob;
            if (vto.isAlive())
                ob = vto;
            else
                ob = map.getViewTreeObserver();

            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
                ob.removeGlobalOnLayoutListener(this);
            } else {
                ob.removeOnGlobalLayoutListener(this);
            }
        }
    });
}

From source file:com.apptentive.android.sdk.view.ApptentiveNestedScrollView.java

@Override
public boolean requestChildRectangleOnScreen(View child, Rect rectangle, boolean immediate) {
    // offset into coordinate space of this scroll view
    rectangle.offset(child.getLeft() - child.getScrollX(), child.getTop() - child.getScrollY());

    return scrollToChildRect(rectangle, immediate);
}

From source file:com.b44t.ui.Components.EmojiView.java

private void checkStickersScroll(int firstVisibleItem) {
    if (stickersGridView == null) {
        return;/*from   w  w  w.j  a v a2s . co  m*/
    }
    if (stickersGridView.getVisibility() != VISIBLE) {
        scrollSlidingTabStrip.onPageScrolled(gifTabBum + 1,
                (recentTabBum > 0 ? recentTabBum : stickersTabOffset) + 1);
        return;
    }
    int count = stickersGridView.getChildCount();
    for (int a = 0; a < count; a++) {
        View child = stickersGridView.getChildAt(a);
        if (child.getHeight() + child.getTop() < AndroidUtilities.dp(5)) {
            firstVisibleItem++;
        } else {
            break;
        }
    }
    scrollSlidingTabStrip.onPageScrolled(stickersGridAdapter.getTabForPosition(firstVisibleItem) + 1,
            (recentTabBum > 0 ? recentTabBum : stickersTabOffset) + 1);
}

From source file:android.support.v7.widget.LinearLayoutCompat.java

void drawDividersVertical(Canvas canvas) {
    final int count = getVirtualChildCount();
    for (int i = 0; i < count; i++) {
        final View child = getVirtualChildAt(i);

        if (child != null && child.getVisibility() != GONE) {
            if (hasDividerBeforeChildAt(i)) {
                final LayoutParams lp = (LayoutParams) child.getLayoutParams();
                final int top = child.getTop() - lp.topMargin - mDividerHeight;
                drawHorizontalDivider(canvas, top);
            }/*from www  .  j  a  v a 2 s.c  o m*/
        }
    }

    if (hasDividerBeforeChildAt(count)) {
        final View child = getVirtualChildAt(count - 1);
        int bottom = 0;
        if (child == null) {
            bottom = getHeight() - getPaddingBottom() - mDividerHeight;
        } else {
            final LayoutParams lp = (LayoutParams) child.getLayoutParams();
            bottom = child.getBottom() + lp.bottomMargin;
        }
        drawHorizontalDivider(canvas, bottom);
    }
}

From source file:android.support.v7.widget.ActionBarContainer.java

@Override
public void onLayout(boolean changed, int l, int t, int r, int b) {
    super.onLayout(changed, l, t, r, b);

    final View tabContainer = mTabContainer;
    final boolean hasTabs = tabContainer != null && tabContainer.getVisibility() != GONE;

    if (tabContainer != null && tabContainer.getVisibility() != GONE) {
        final int containerHeight = getMeasuredHeight();
        final LayoutParams lp = (LayoutParams) tabContainer.getLayoutParams();
        final int tabHeight = tabContainer.getMeasuredHeight();
        tabContainer.layout(l, containerHeight - tabHeight - lp.bottomMargin, r,
                containerHeight - lp.bottomMargin);
    }//from www .  j  a  v  a  2  s . c o  m

    boolean needsInvalidate = false;
    if (mIsSplit) {
        if (mSplitBackground != null) {
            mSplitBackground.setBounds(0, 0, getMeasuredWidth(), getMeasuredHeight());
            needsInvalidate = true;
        }
    } else {
        if (mBackground != null) {
            if (mActionBarView.getVisibility() == View.VISIBLE) {
                mBackground.setBounds(mActionBarView.getLeft(), mActionBarView.getTop(),
                        mActionBarView.getRight(), mActionBarView.getBottom());
            } else if (mContextView != null && mContextView.getVisibility() == View.VISIBLE) {
                mBackground.setBounds(mContextView.getLeft(), mContextView.getTop(), mContextView.getRight(),
                        mContextView.getBottom());
            } else {
                mBackground.setBounds(0, 0, 0, 0);
            }
            needsInvalidate = true;
        }
        mIsStacked = hasTabs;
        if (hasTabs && mStackedBackground != null) {
            mStackedBackground.setBounds(tabContainer.getLeft(), tabContainer.getTop(), tabContainer.getRight(),
                    tabContainer.getBottom());
            needsInvalidate = true;
        }
    }

    if (needsInvalidate) {
        invalidate();
    }
}