Example usage for android.support.v4.view GravityCompat getAbsoluteGravity

List of usage examples for android.support.v4.view GravityCompat getAbsoluteGravity

Introduction

In this page you can find the example usage for android.support.v4.view GravityCompat getAbsoluteGravity.

Prototype

public static int getAbsoluteGravity(int i, int i2) 

Source Link

Usage

From source file:im.ene.ribbon.BottomNavigationView.java

private void resolveGravity(ViewGroup.LayoutParams params) {
    if (params instanceof FrameLayout.LayoutParams) {
        this.gravity = GravityCompat.getAbsoluteGravity(((LayoutParams) params).gravity,
                ViewCompat.getLayoutDirection(this));
    } else if (params instanceof CoordinatorLayout.LayoutParams) {
        this.gravity = GravityCompat.getAbsoluteGravity(((CoordinatorLayout.LayoutParams) params).gravity,
                ViewCompat.getLayoutDirection(this));
    }/*from w w  w .j  av a  2 s . c  om*/

    initializeUI(gravity);
}

From source file:com.aidy.bottomdrawerlayout.AllDrawerLayout.java

/**
 * Enable or disable interaction with the given drawer.
 * /*from   ww  w.j ava  2s.co m*/
 * <p>
 * This allows the application to restrict the user's ability to open or
 * close the given drawer. DrawerLayout will still respond to calls to
 * {@link #openDrawer(int)}, {@link #closeDrawer(int)} and friends if a
 * drawer is locked.
 * </p>
 * 
 * <p>
 * Locking a drawer open or closed will implicitly open or close that drawer
 * as appropriate.
 * </p>
 * 
 * @param lockMode
 *            The new lock mode for the given drawer. One of
 *            {@link #LOCK_MODE_UNLOCKED}, {@link #LOCK_MODE_LOCKED_CLOSED}
 *            or {@link #LOCK_MODE_LOCKED_OPEN}.
 * @param edgeGravity
 *            Gravity.LEFT, RIGHT, START or END. Expresses which drawer to
 *            change the mode for.
 * 
 * @see #LOCK_MODE_UNLOCKED
 * @see #LOCK_MODE_LOCKED_CLOSED
 * @see #LOCK_MODE_LOCKED_OPEN
 */
public void setDrawerLockMode(int lockMode, int edgeGravity) {
    final int absGravity = GravityCompat.getAbsoluteGravity(edgeGravity, ViewCompat.getLayoutDirection(this));
    final ViewDragHelper helper;
    switch (absGravity) {
    case Gravity.LEFT:
        mLockModeLeft = lockMode;
        helper = mLeftDragger;
        break;
    case Gravity.RIGHT:
        mLockModeRight = lockMode;
        helper = mRightDragger;
        break;
    case Gravity.TOP:
        mLockModeTop = lockMode;
        helper = mTopDragger;
        break;
    case Gravity.BOTTOM:
        mLockModeBottom = lockMode;
        helper = mBottomDragger;
        break;
    default:
        helper = mBottomDragger;
        break;
    }
    if (lockMode != LOCK_MODE_UNLOCKED) {
        // Cancel interaction in progress
        helper.cancel();
    }
    switch (lockMode) {
    case LOCK_MODE_LOCKED_OPEN:
        final View toOpen = findDrawerWithGravity(absGravity);
        if (toOpen != null) {
            openDrawer(toOpen);
        }
        break;
    case LOCK_MODE_LOCKED_CLOSED:
        final View toClose = findDrawerWithGravity(absGravity);
        if (toClose != null) {
            closeDrawer(toClose);
        }
        break;
    // default: do nothing
    }
}

From source file:com.actionbarsherlock.custom.widget.VerticalDrawerLayout.java

/**
 * Check the lock mode of the drawer with the given gravity.
 *
 * @param edgeGravity Gravity of the drawer to check
 * @return one of {@link #LOCK_MODE_UNLOCKED}, {@link #LOCK_MODE_LOCKED_CLOSED} or
 *         {@link #LOCK_MODE_LOCKED_OPEN}.
 *//*from   w  ww. ja va  2  s .c o  m*/
public int getDrawerLockMode(int edgeGravity) {
    final int absGrav = GravityCompat.getAbsoluteGravity(edgeGravity, ViewCompat.getLayoutDirection(this));
    if (absGrav == Gravity.TOP) {
        return mLockModeTop;
    } else if (absGrav == Gravity.BOTTOM) {
        return mLockModeBottom;
    }
    return LOCK_MODE_UNLOCKED;
}

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

/**
 * Check the lock mode of the drawer with the given gravity.
 *
 * @param edgeGravity Gravity of the drawer to check
 * @return one of {@link #LOCK_MODE_UNLOCKED}, {@link #LOCK_MODE_LOCKED_CLOSED} or
 *         {@link #LOCK_MODE_LOCKED_OPEN}.
 *///from   w w  w  .  j  ava2  s . com
public int getDrawerLockMode(int edgeGravity) {
    final int absGrav = GravityCompat.getAbsoluteGravity(edgeGravity, ViewCompat.getLayoutDirection(this));
    if (absGrav == Gravity.LEFT) {
        return mLockModeLeft;
    } else if (absGrav == Gravity.RIGHT) {
        return mLockModeRight;
    }
    return LOCK_MODE_UNLOCKED;
}

From source file:android.car.ui.provider.CarDrawerLayout.java

/**
 * Enable or disable interaction with the given drawer.
 *
 * <p>This allows the application to restrict the user's ability to open or close
 * the given drawer. DrawerLayout will still respond to calls to {@link #openDrawer()},
 * {@link #closeDrawer()} and friends if a drawer is locked.</p>
 *
 * <p>Locking a drawer open or closed will implicitly open or close
 * that drawer as appropriate.</p>
 *
 * @param lockMode The new lock mode for the given drawer. One of {@link #LOCK_MODE_UNLOCKED},
 *                 {@link #LOCK_MODE_LOCKED_CLOSED} or {@link #LOCK_MODE_LOCKED_OPEN}.
 * @param edgeGravity Gravity.LEFT, RIGHT, START or END.
 *                    Expresses which drawer to change the mode for.
 *
 * @see #LOCK_MODE_UNLOCKED//from   w  w  w. j  av  a2  s  . c  o m
 * @see #LOCK_MODE_LOCKED_CLOSED
 * @see #LOCK_MODE_LOCKED_OPEN
 */
public void setDrawerLockMode(int lockMode, int edgeGravity) {
    final int absGravity = GravityCompat.getAbsoluteGravity(edgeGravity, ViewCompat.getLayoutDirection(this));
    if (absGravity == Gravity.LEFT) {
        mLockModeLeft = lockMode;
    } else if (absGravity == Gravity.RIGHT) {
        mLockModeRight = lockMode;
    }
    if (lockMode != LOCK_MODE_UNLOCKED) {
        // Cancel interaction in progress
        mDragger.cancel();
    }
    switch (lockMode) {
    case LOCK_MODE_LOCKED_OPEN:
        openDrawer();
        break;
    case LOCK_MODE_LOCKED_CLOSED:
        closeDrawer();
        break;
    // default: do nothing
    }
}

From source file:com.aidy.bottomdrawerlayout.DrawerLayout.java

/**
 * Check the lock mode of the drawer with the given gravity.
 * //from  ww w  .j ava  2  s . c  om
 * @param edgeGravity
 *            Gravity of the drawer to check
 * @return one of {@link #LOCK_MODE_UNLOCKED},
 *         {@link #LOCK_MODE_LOCKED_CLOSED} or
 *         {@link #LOCK_MODE_LOCKED_OPEN}.
 */
public int getDrawerLockMode(int edgeGravity) {
    final int absGravity = GravityCompat.getAbsoluteGravity(edgeGravity, ViewCompat.getLayoutDirection(this));
    if (absGravity == Gravity.LEFT) {
        return mLockModeLeft;
    } else if (absGravity == Gravity.RIGHT) {
        return mLockModeRight;
    }
    return LOCK_MODE_UNLOCKED;
}

From source file:ca.co.rufus.androidboilerplate.ui.DebugDrawerLayout.java

/**
 * Enable or disable interaction with the given drawer.
 *
 * <p>This allows the application to restrict the user's ability to open or close
 * the given drawer. DrawerLayout will still respond to calls to {@link #openDrawer(int)},
 * {@link #closeDrawer(int)} and friends if a drawer is locked.</p>
 *
 * <p>Locking a drawer open or closed will implicitly open or close
 * that drawer as appropriate.</p>
 *
 * @param lockMode The new lock mode for the given drawer. One of {@link #LOCK_MODE_UNLOCKED},
 *                 {@link #LOCK_MODE_LOCKED_CLOSED} or {@link #LOCK_MODE_LOCKED_OPEN}.
 * @param edgeGravity Gravity.LEFT, RIGHT, START or END.
 *                    Expresses which drawer to change the mode for.
 *
 * @see #LOCK_MODE_UNLOCKED//from w  w  w.j  a v  a  2s  .c o m
 * @see #LOCK_MODE_LOCKED_CLOSED
 * @see #LOCK_MODE_LOCKED_OPEN
 */
public void setDrawerLockMode(@LockMode int lockMode, @EdgeGravity int edgeGravity) {
    final int absGravity = GravityCompat.getAbsoluteGravity(edgeGravity, ViewCompat.getLayoutDirection(this));
    if (absGravity == Gravity.LEFT) {
        mLockModeLeft = lockMode;
    } else if (absGravity == Gravity.RIGHT) {
        mLockModeRight = lockMode;
    }
    if (lockMode != LOCK_MODE_UNLOCKED) {
        // Cancel interaction in progress
        final ViewDragHelper helper = absGravity == Gravity.LEFT ? mLeftDragger : mRightDragger;
        helper.cancel();
    }
    switch (lockMode) {
    case LOCK_MODE_LOCKED_OPEN:
        final View toOpen = findDrawerWithGravity(absGravity);
        if (toOpen != null) {
            openDrawer(toOpen);
        }
        break;
    case LOCK_MODE_LOCKED_CLOSED:
        final View toClose = findDrawerWithGravity(absGravity);
        if (toClose != null) {
            closeDrawer(toClose);
        }
        break;
    // default: do nothing
    }
}

From source file:com.google.blockly.android.ToolboxFragment.java

/**
 * Updates the padding used to calculate the margins of the scrollable blocks, based on the size
 * and placement of the tabs./*ww w.j  a  v a 2s.  c  om*/
 */
private void updateScrollablePadding() {
    int buttonHeight = mActionButton.getVisibility() == View.GONE ? 0 : mActionButton.getMeasuredHeight();
    int buttonWidth = mActionButton.getVisibility() == View.GONE ? 0 : mActionButton.getMeasuredWidth();
    int buttonVerticalPadding = 0, buttonHorizontalPadding = 0;
    if (mScrollOrientation == SCROLL_VERTICAL) {
        buttonVerticalPadding = buttonHeight;
    } else {
        buttonHorizontalPadding = buttonWidth;
    }
    int layoutDir = ViewCompat.getLayoutDirection(mRootView);
    int spacingForTabs;
    switch (GravityCompat.getAbsoluteGravity(mTabEdge, layoutDir)) {
    case Gravity.LEFT:
        spacingForTabs = hasTabs() ? mCategoryTabs.getMeasuredWidth() : 0; // Horizontal
        mScrollablePadding.set(spacingForTabs + buttonHorizontalPadding, buttonVerticalPadding, 0, 0);
        break;
    case Gravity.TOP:
        spacingForTabs = hasTabs() ? mCategoryTabs.getMeasuredHeight() : 0; // Vertical
        if (layoutDir == ViewCompat.LAYOUT_DIRECTION_LTR) {
            mScrollablePadding.set(buttonHorizontalPadding, spacingForTabs + buttonVerticalPadding, 0, 0);
        } else {
            mScrollablePadding.set(0, spacingForTabs + buttonVerticalPadding, buttonHorizontalPadding, 0);
        }
        break;
    case Gravity.RIGHT:
        spacingForTabs = hasTabs() ? mCategoryTabs.getMeasuredWidth() : 0; // Horizontal
        mScrollablePadding.set(0, buttonVerticalPadding, spacingForTabs + buttonHorizontalPadding, 0);
        break;
    case Gravity.BOTTOM:
        spacingForTabs = hasTabs() ? mCategoryTabs.getMeasuredHeight() : 0; // Vertical
        if (layoutDir == ViewCompat.LAYOUT_DIRECTION_LTR) {
            mScrollablePadding.set(buttonHorizontalPadding, 0, 0, spacingForTabs + buttonVerticalPadding);
        } else {
            mScrollablePadding.set(0, 0, buttonHorizontalPadding, spacingForTabs + buttonVerticalPadding);
        }
        break;
    }
}

From source file:com.quran.labs.androidquran.widgets.spinner.SpinnerCompat.java

/**
 * Creates and positions all views for this Spinner.
 *
 * @param delta Change in the selected position. +1 means selection is moving to the right, so
 *              views are scrolling to the left. -1 means selection is moving to the left.
 *//*from   w w w .ja va 2s .  c  o m*/
@SuppressLint("RtlHardcoded")
@Override
void layout(int delta, boolean animate) {
    int childrenLeft = mSpinnerPadding.left;
    int childrenWidth = getRight() - getLeft() - mSpinnerPadding.left - mSpinnerPadding.right;

    if (mDataChanged) {
        handleDataChanged();
    }

    // Handle the empty set by removing all views
    if (mItemCount == 0) {
        resetList();
        return;
    }

    if (mNextSelectedPosition >= 0) {
        setSelectedPositionInt(mNextSelectedPosition);
    }

    recycleAllViews();

    // Clear out old views
    removeAllViewsInLayout();

    // Make selected view and position it
    mFirstPosition = mSelectedPosition;
    if (mAdapter != null) {
        View sel = makeView(mSelectedPosition, true);
        int width = sel.getMeasuredWidth();
        int selectedOffset = childrenLeft;
        final int layoutDirection = ViewCompat.getLayoutDirection(this);
        final int absoluteGravity = GravityCompat.getAbsoluteGravity(mGravity, layoutDirection);
        switch (absoluteGravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
        case Gravity.CENTER_HORIZONTAL:
            selectedOffset = childrenLeft + (childrenWidth / 2) - (width / 2);
            break;
        case Gravity.RIGHT:
            selectedOffset = childrenLeft + childrenWidth - width;
            break;
        }
        sel.offsetLeftAndRight(selectedOffset);
    }

    // Flush any cached views that did not get reused above
    mRecycler.clear();

    invalidate();

    checkSelectionChanged();

    mDataChanged = false;
    mNeedSync = false;
    setNextSelectedPositionInt(mSelectedPosition);
}

From source file:com.example.verticaldrawerlayout.VerticalDrawerLayout.java

/**
 * Check the lock mode of the drawer with the given gravity.
 * //ww w  . j  a  v a  2 s.  c  o  m
 * @param edgeGravity
 *            Gravity of the drawer to check
 * @return one of {@link #LOCK_MODE_UNLOCKED},
 *         {@link #LOCK_MODE_LOCKED_CLOSED} or
 *         {@link #LOCK_MODE_LOCKED_OPEN}.
 */
public int getDrawerLockMode(int edgeGravity) {
    final int absGravity = GravityCompat.getAbsoluteGravity(edgeGravity, ViewCompat.getLayoutDirection(this));
    if (absGravity == Gravity.TOP) {
        return mLockModeTop;
    } else if (absGravity == Gravity.BOTTOM) {
        return mLockModeBottom;
    }
    return LOCK_MODE_UNLOCKED;
}