Search in sources :

Example 91 with RIGHT

use of android.support.v7.widget.helper.ItemTouchHelper.RIGHT in project android-parallax-recyclerview by kanytu.

the class HeaderLayoutManagerFixed method fill.

/**
 * The magic functions :). Fills the given layout, defined by the renderState. This is fairly
 * independent from the rest of the {@link android.support.v7.widget.LinearLayoutManager}
 * and with little change, can be made publicly available as a helper class.
 *
 * @param recycler        Current recycler that is attached to RecyclerView
 * @param renderState     Configuration on how we should fill out the available space.
 * @param state           Context passed by the RecyclerView to control scroll steps.
 * @param stopOnFocusable If true, filling stops in the first focusable new child
 * @return Number of pixels that it added. Useful for scoll functions.
 */
private int fill(RecyclerView.Recycler recycler, RenderState renderState, RecyclerView.State state, boolean stopOnFocusable) {
    // max offset we should set is mFastScroll + available
    final int start = renderState.mAvailable;
    if (renderState.mScrollingOffset != RenderState.SCOLLING_OFFSET_NaN) {
        // TODO ugly bug fix. should not happen
        if (renderState.mAvailable < 0) {
            renderState.mScrollingOffset += renderState.mAvailable;
        }
        recycleByRenderState(recycler, renderState);
    }
    int remainingSpace = renderState.mAvailable + renderState.mExtra + mHeaderIncrementFixer;
    while (remainingSpace > 0 && renderState.hasMore(state)) {
        View view = renderState.next(recycler);
        if (view == null) {
            if (DEBUG && renderState.mScrapList == null) {
                throw new RuntimeException("received null view when unexpected");
            }
            // no more items to layout.
            break;
        }
        RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) view.getLayoutParams();
        if (!params.isItemRemoved() && mRenderState.mScrapList == null) {
            if (mShouldReverseLayout == (renderState.mLayoutDirection == RenderState.LAYOUT_START)) {
                addView(view);
            } else {
                addView(view, 0);
            }
        }
        measureChildWithMargins(view, 0, 0);
        int consumed = mOrientationHelper.getDecoratedMeasurement(view);
        int left, top, right, bottom;
        if (mOrientation == VERTICAL) {
            if (isLayoutRTL()) {
                right = getWidth() - getPaddingRight();
                left = right - mOrientationHelper.getDecoratedMeasurementInOther(view);
            } else {
                left = getPaddingLeft();
                right = left + mOrientationHelper.getDecoratedMeasurementInOther(view);
            }
            if (renderState.mLayoutDirection == RenderState.LAYOUT_START) {
                bottom = renderState.mOffset;
                top = renderState.mOffset - consumed;
            } else {
                top = renderState.mOffset;
                bottom = renderState.mOffset + consumed;
            }
        } else {
            top = getPaddingTop();
            bottom = top + mOrientationHelper.getDecoratedMeasurementInOther(view);
            if (renderState.mLayoutDirection == RenderState.LAYOUT_START) {
                right = renderState.mOffset;
                left = renderState.mOffset - consumed;
            } else {
                left = renderState.mOffset;
                right = renderState.mOffset + consumed;
            }
        }
        // We calculate everything with View's bounding box (which includes decor and margins)
        // To calculate correct layout position, we subtract margins.
        layoutDecorated(view, left + params.leftMargin, top + params.topMargin, right - params.rightMargin, bottom - params.bottomMargin);
        if (DEBUG) {
            Log.d(TAG, "laid out child at position " + getPosition(view) + ", with l:" + (left + params.leftMargin) + ", t:" + (top + params.topMargin) + ", r:" + (right - params.rightMargin) + ", b:" + (bottom - params.bottomMargin));
        }
        renderState.mOffset += consumed * renderState.mLayoutDirection;
        if (!params.isItemRemoved()) {
            renderState.mAvailable -= consumed;
            // we keep a separate remaining space because mAvailable is important for recycling
            remainingSpace -= consumed;
        }
        if (renderState.mScrollingOffset != RenderState.SCOLLING_OFFSET_NaN) {
            renderState.mScrollingOffset += consumed;
            if (renderState.mAvailable < 0) {
                renderState.mScrollingOffset += renderState.mAvailable;
            }
            recycleByRenderState(recycler, renderState);
        }
        if (stopOnFocusable && view.isFocusable()) {
            break;
        }
        if (state != null && state.getTargetScrollPosition() == getPosition(view)) {
            break;
        }
    }
    if (DEBUG) {
        validateChildOrder();
    }
    return start - renderState.mAvailable;
}
Also used : RecyclerView(android.support.v7.widget.RecyclerView) RecyclerView(android.support.v7.widget.RecyclerView) View(android.view.View)

Example 92 with RIGHT

use of android.support.v7.widget.helper.ItemTouchHelper.RIGHT in project platform_packages_apps_Settings by BlissRoms.

the class InputMethodAndSubtypeEnabler method onCreate.

@Override
public void onCreate(final Bundle icicle) {
    super.onCreate(icicle);
    // Input method id should be available from an Intent when this preference is launched as a
    // single Activity (see InputMethodAndSubtypeEnablerActivity). It should be available
    // from a preference argument when the preference is launched as a part of the other
    // Activity (like a right pane of 2-pane Settings app)
    final String targetImi = getStringExtraFromIntentOrArguments(android.provider.Settings.EXTRA_INPUT_METHOD_ID);
    final PreferenceScreen root = getPreferenceManager().createPreferenceScreen(getPrefContext());
    mManager = new InputMethodAndSubtypeEnablerManager(this);
    mManager.init(this, targetImi, root);
    setPreferenceScreen(root);
}
Also used : PreferenceScreen(android.support.v7.preference.PreferenceScreen) InputMethodAndSubtypeEnablerManager(com.android.settingslib.inputmethod.InputMethodAndSubtypeEnablerManager)

Example 93 with RIGHT

use of android.support.v7.widget.helper.ItemTouchHelper.RIGHT in project DragListView by woxblom.

the class BoardView method getClosestSnapColumn.

private int getClosestSnapColumn() {
    int column = 0;
    int minDiffX = Integer.MAX_VALUE;
    for (int i = 0; i < mLists.size(); i++) {
        View listParent = (View) mLists.get(i).getParent();
        int diffX = 0;
        switch(mSnapPosition) {
            case LEFT:
                int leftPosX = getScrollX();
                diffX = Math.abs(listParent.getLeft() - leftPosX);
                break;
            case CENTER:
                int middlePosX = getScrollX() + getMeasuredWidth() / 2;
                diffX = Math.abs(listParent.getLeft() + mColumnWidth / 2 - middlePosX);
                break;
            case RIGHT:
                int rightPosX = getScrollX() + getMeasuredWidth();
                diffX = Math.abs(listParent.getRight() - rightPosX);
                break;
        }
        if (diffX < minDiffX) {
            minDiffX = diffX;
            column = i;
        }
    }
    return column;
}
Also used : RecyclerView(android.support.v7.widget.RecyclerView) HorizontalScrollView(android.widget.HorizontalScrollView) View(android.view.View)

Example 94 with RIGHT

use of android.support.v7.widget.helper.ItemTouchHelper.RIGHT in project DragListView by woxblom.

the class BoardView method moveColumn.

private void moveColumn(final int fromIndex, final int toIndex) {
    DragItemRecyclerView list = mLists.remove(fromIndex);
    mLists.add(toIndex, list);
    View header = mHeaders.remove(fromIndex);
    mHeaders.add(toIndex, header);
    final View column1 = mColumnLayout.getChildAt(fromIndex);
    final View column2 = mColumnLayout.getChildAt(toIndex);
    mColumnLayout.removeViewAt(fromIndex);
    mColumnLayout.addView(column1, toIndex);
    mColumnLayout.addOnLayoutChangeListener(new OnLayoutChangeListener() {

        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
            mColumnLayout.removeOnLayoutChangeListener(this);
            column2.setTranslationX(column2.getTranslationX() + column1.getLeft() - column2.getLeft());
            column2.animate().translationX(0).setDuration(350).start();
        }
    });
    if (mBoardListener != null) {
        mBoardListener.onColumnDragChangedPosition(fromIndex, toIndex);
    }
}
Also used : RecyclerView(android.support.v7.widget.RecyclerView) HorizontalScrollView(android.widget.HorizontalScrollView) View(android.view.View)

Example 95 with RIGHT

use of android.support.v7.widget.helper.ItemTouchHelper.RIGHT in project DragListView by woxblom.

the class BoardView method scrollToColumn.

public void scrollToColumn(int column, boolean animate) {
    if (mLists.size() <= column) {
        return;
    }
    View parent = (View) mLists.get(column).getParent();
    int newX = 0;
    switch(mSnapPosition) {
        case LEFT:
            newX = parent.getLeft();
            break;
        case CENTER:
            newX = parent.getLeft() - (getMeasuredWidth() - parent.getMeasuredWidth()) / 2;
            break;
        case RIGHT:
            newX = parent.getRight() - getMeasuredWidth();
            break;
    }
    int maxScroll = mRootLayout.getMeasuredWidth() - getMeasuredWidth();
    newX = newX < 0 ? 0 : newX;
    newX = newX > maxScroll ? maxScroll : newX;
    if (getScrollX() != newX) {
        mScroller.forceFinished(true);
        if (animate) {
            mScroller.startScroll(getScrollX(), getScrollY(), newX - getScrollX(), 0, SCROLL_ANIMATION_DURATION);
            ViewCompat.postInvalidateOnAnimation(this);
        } else {
            scrollTo(newX, getScrollY());
        }
    }
    int oldColumn = mCurrentColumn;
    mCurrentColumn = column;
    if (mBoardListener != null && oldColumn != mCurrentColumn) {
        mBoardListener.onFocusedColumnChanged(oldColumn, mCurrentColumn);
    }
}
Also used : RecyclerView(android.support.v7.widget.RecyclerView) HorizontalScrollView(android.widget.HorizontalScrollView) View(android.view.View)

Aggregations

View (android.view.View)315 RecyclerView (android.support.v7.widget.RecyclerView)294 Paint (android.graphics.Paint)47 TextView (android.widget.TextView)46 ImageView (android.widget.ImageView)29 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)27 ViewGroup (android.view.ViewGroup)15 Intent (android.content.Intent)13 Rect (android.graphics.Rect)12 Preference (android.support.v7.preference.Preference)12 GridLayoutManager (android.support.v7.widget.GridLayoutManager)11 SuppressLint (android.annotation.SuppressLint)10 AlertDialog (android.support.v7.app.AlertDialog)10 Bundle (android.os.Bundle)9 Bitmap (android.graphics.Bitmap)8 OnLayoutChangeListener (android.view.View.OnLayoutChangeListener)8 Button (android.widget.Button)8 PreferenceScreen (android.support.v7.preference.PreferenceScreen)7 ArrayList (java.util.ArrayList)7 Animator (android.animation.Animator)6