Java Code Examples for android.view.View#getLayoutParams()

The following examples show how to use android.view.View#getLayoutParams() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TitleLayout.java    From DMusic with Apache License 2.0 6 votes vote down vote up
private void inflate(Context context, View root, String text, Drawable drawable, int res,
                     int tv_id, int iv_id, int verb) {
    if (!TextUtils.isEmpty(text)) {
        TextView tv = (TextView) root.findViewById(tv_id);
        if (tv != null) {
            tv.setText(text);
            tv.setVisibility(VISIBLE);
        }
    } else if (drawable != null) {
        ImageView iv = (ImageView) root.findViewById(iv_id);
        if (iv != null) {
            iv.setImageDrawable(drawable);
            iv.setVisibility(VISIBLE);
        }
    } else if (res != -1) {
        View view = LayoutInflater.from(context).inflate(res, this, false);
        addView(view);
        LayoutParams lp = (LayoutParams) view.getLayoutParams();
        lp.addRule(verb);
        lp.height = ViewGroup.LayoutParams.MATCH_PARENT;
        lp.width = ViewGroup.LayoutParams.WRAP_CONTENT;
        view.setLayoutParams(lp);
    }
}
 
Example 2
Source File: SectionLayoutManager.java    From toktok-android with GNU General Public License v3.0 6 votes vote down vote up
/**
 * Find the highest displayed edge of the section. If there is no member found then return the
 * default edge instead.
 *
 * @param sectionFirstPosition Section id, position of first item in the section.
 * @param firstIndex           Child index to start looking from.
 * @param defaultEdge          Default value.
 * @return Top (attached) edge of the section.
 */
public int getHighestEdge(int sectionFirstPosition, int firstIndex, int defaultEdge) {
    // Look from start to find children that are the highest.
    for (int i = firstIndex; i < mLayoutManager.getChildCount(); i++) {
        View child = mLayoutManager.getChildAt(i);
        LayoutManager.LayoutParams params = (LayoutManager.LayoutParams) child
                .getLayoutParams();
        if (params.getTestedFirstPosition() != sectionFirstPosition) {
            break;
        }
        if (params.isHeader) {
            continue;
        }
        // A more interesting layout would have to do something more here.
        return mLayoutManager.getDecoratedTop(child);
    }
    return defaultEdge;
}
 
Example 3
Source File: RcvLinearDecoration.java    From RecyclerViewAdapter with Apache License 2.0 6 votes vote down vote up
private void drawVertical(Canvas c, RecyclerView parent)
{
    final int left = parent.getPaddingLeft();
    final int right = parent.getWidth() - parent.getPaddingRight();

    final int childCount = parent.getChildCount();
    for (int i = 0; i < childCount; i++)
    {
        final View child = parent.getChildAt(i);
        final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
        final int top = child.getBottom() + params.bottomMargin;
        final int bottom = top + mDividerSize;
        if (mDividerDrawable != null)
        {
            mDividerDrawable.setBounds(left, top, right, bottom);
            mDividerDrawable.draw(c);
        } else if (mDividerPaint != null)
        {
            c.drawRect(left, top, right, bottom, mDividerPaint);
        }
    }
}
 
Example 4
Source File: SmartSwipe.java    From SmartSwipe with Apache License 2.0 6 votes vote down vote up
/**
 * wrap a view
 * @param view the view to be wrapped
 * @return the original wrapper or create a new wrapper to wrap the view and replace its place into parent
 */
public static SmartSwipeWrapper wrap(View view) {
    SmartSwipeWrapper wrapper = peekWrapperFor(view);
    if (wrapper != null) {
        return wrapper;
    }
    ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
    if (view.getParent() != null) {
        ViewGroup viewParent = (ViewGroup) view.getParent();
        wrapper = createNewWrapper(view.getContext());
        int index = viewParent.indexOfChild(view);
        viewParent.removeView(view);
        viewParent.addView(wrapper, index, layoutParams);
    } else {
        wrapper = createNewWrapper(view.getContext());
        if (layoutParams != null) {
            wrapper.setLayoutParams(layoutParams);
        }
    }
    wrapper.setContentView(view);
    return wrapper;
}
 
Example 5
Source File: BotKeyboardView.java    From Telegram-FOSS with GNU General Public License v2.0 6 votes vote down vote up
public void setPanelHeight(int height) {
    panelHeight = height;
    if (isFullSize && botButtons != null && botButtons.rows.size() != 0) {
        buttonHeight = !isFullSize ? 42 : (int) Math.max(42, (panelHeight - AndroidUtilities.dp(30) - (botButtons.rows.size() - 1) * AndroidUtilities.dp(10)) / botButtons.rows.size() / AndroidUtilities.density);
        int count = container.getChildCount();
        int newHeight = AndroidUtilities.dp(buttonHeight);
        for (int a = 0; a < count; a++) {
            View v = container.getChildAt(a);
            LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) v.getLayoutParams();
            if (layoutParams.height != newHeight) {
                layoutParams.height = newHeight;
                v.setLayoutParams(layoutParams);
            }
        }
    }
}
 
Example 6
Source File: DrawerLayout.java    From V.FlyoutTest with MIT License 6 votes vote down vote up
/**
 * Close the specified drawer view by animating it into view.
 *
 * @param drawerView Drawer view to close
 */
public void closeDrawer(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 = 0.f;
        lp.knownOpen = false;
    } else {
        if (checkDrawerViewAbsoluteGravity(drawerView, Gravity.LEFT)) {
            mLeftDragger.smoothSlideViewTo(drawerView, -drawerView.getWidth(),
                    drawerView.getTop());
        } else {
            mRightDragger.smoothSlideViewTo(drawerView, getWidth(), drawerView.getTop());
        }
    }
    invalidate();
}
 
Example 7
Source File: FocusLayoutManager.java    From AndroidAnimationExercise with Apache License 2.0 5 votes vote down vote up
/**
 * 获取某个childView在竖直方向所占的空间,将margin考虑进去
 *
 * @param view
 * @return
 */
public int getDecoratedMeasurementVertical(View view) {
    final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams)
            view.getLayoutParams();
    return getDecoratedMeasuredHeight(view) + params.topMargin
            + params.bottomMargin;
}
 
Example 8
Source File: PViewSizeUtils.java    From YImagePicker with Apache License 2.0 5 votes vote down vote up
public static void setMarginTopAndBottom(View view, int marginTop, int marginBottom) {
    WeakReference<View> viewWeakReference = new WeakReference<>(view);
    if (viewWeakReference.get() != null) {
        ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
        if (params != null) {
            params.topMargin = marginTop;
            params.bottomMargin = marginBottom;
            viewWeakReference.get().setLayoutParams(params);
        }
    }
}
 
Example 9
Source File: LinearLayoutManagerTV.java    From Android-tv-widget with Apache License 2.0 5 votes vote down vote up
private void measureScrapChild(RecyclerView.Recycler recycler, int position, int widthSpec, int heightSpec, int[] measuredDimension) {
    View view = recycler.getViewForPosition(position);
    if (view != null) {
        RecyclerView.LayoutParams p = (RecyclerView.LayoutParams) view.getLayoutParams();
        int childHeightSpec = ViewGroup.getChildMeasureSpec(heightSpec,
                getPaddingTop() + getPaddingBottom(), p.height);
        view.measure(widthSpec, childHeightSpec);
        measuredDimension[0] = view.getMeasuredWidth() + p.leftMargin + p.rightMargin;
        measuredDimension[1] = view.getMeasuredHeight() + p.bottomMargin + p.topMargin;
        recycler.recycleView(view);
    }
}
 
Example 10
Source File: InsettableFrameLayout.java    From LB-Launcher with Apache License 2.0 5 votes vote down vote up
public void setFrameLayoutChildInsets(View child, Rect newInsets, Rect oldInsets) {
    final LayoutParams lp = (LayoutParams) child.getLayoutParams();

    if (child instanceof Insettable) {
        ((Insettable) child).setInsets(newInsets);
    } else if (!lp.ignoreInsets) {
        lp.topMargin += (newInsets.top - oldInsets.top);
        lp.leftMargin += (newInsets.left - oldInsets.left);
        lp.rightMargin += (newInsets.right - oldInsets.right);
        lp.bottomMargin += (newInsets.bottom - oldInsets.bottom);
    }
    child.setLayoutParams(lp);
}
 
Example 11
Source File: EmbedBottomSheet.java    From TelePlus-Android with GNU General Public License v2.0 5 votes vote down vote up
@Override
protected boolean onCustomMeasure(View view, int width, int height) {
    if (view == videoView.getControlsView()) {
        ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
        layoutParams.width = videoView.getMeasuredWidth();
        layoutParams.height = videoView.getAspectRatioView().getMeasuredHeight() + (videoView.isInFullscreen() ? 0 : AndroidUtilities.dp(10));
    }
    return false;
}
 
Example 12
Source File: AbstractSnapperLLM.java    From MultiView with Apache License 2.0 5 votes vote down vote up
@Override
public void addView(View child, int index) {
    RecyclerView.LayoutParams lp = (RecyclerView.LayoutParams) child.getLayoutParams();
    if (showOneItemOnly) {
        if (canScrollHorizontally()) {
            lp.width = getWidth();
            if (lp.height != -2) {
                lp.height = getHeight();
            }
        } else {
            lp.height = getHeight();
            if (lp.width != -2) {
                lp.width = getWidth();
            }
        }
    } else {
        if (lp instanceof LayoutParams) {
            lp.width = ((LayoutParams) lp).origWidth;
            lp.height = ((LayoutParams) lp).origHeight;
        } else if (lp instanceof ScalableGridLayoutManager.LayoutParams) {
            lp.width = ((ScalableGridLayoutManager.LayoutParams) lp).getOrigWidth();
            lp.height = ((ScalableGridLayoutManager.LayoutParams) lp).getOrigHeight();
        }

    }
    super.addView(child, index);
}
 
Example 13
Source File: ViewUtil.java    From TitleBarView with Apache License 2.0 5 votes vote down vote up
/**
 * 设置视图的宽高
 *
 * @param view
 * @param width
 * @param height
 */
public void setViewWidthAndHeight(View view, int width, int height) {
    if (view == null) {
        return;
    }
    ViewGroup.LayoutParams lp = view.getLayoutParams();
    lp.width = width;
    lp.height = height;
    view.setLayoutParams(lp);
}
 
Example 14
Source File: SystemBarHelper.java    From FlycoSystemBar with MIT License 5 votes vote down vote up
/** 增加View的高度以及paddingTop,增加的值为状态栏高度.一般是在沉浸式全屏给ToolBar用的 */
public static void setHeightAndPadding(Context context, View view) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        ViewGroup.LayoutParams lp = view.getLayoutParams();
        lp.height += getStatusBarHeight(context);//增高
        view.setPadding(view.getPaddingLeft(), view.getPaddingTop() + getStatusBarHeight(context),
                view.getPaddingRight(), view.getPaddingBottom());
    }
}
 
Example 15
Source File: FillLastLinearLayoutManager.java    From Telegram with GNU General Public License v2.0 5 votes vote down vote up
@Override
public void measureChildWithMargins(View child, int widthUsed, int heightUsed) {
    RecyclerView.ViewHolder holder = listView.findContainingViewHolder(child);
    int pos = holder.getAdapterPosition();
    if (pos == getItemCount() - 1) {
        RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();
        layoutParams.height = Math.max(lastItemHeight, 0);
    }
    super.measureChildWithMargins(child, 0, 0);
}
 
Example 16
Source File: VerticalViewPager.java    From ankihelper with GNU General Public License v3.0 5 votes vote down vote up
private void removeNonDecorViews() {
    for (int i = 0; i < getChildCount(); i++) {
        final View child = getChildAt(i);
        final LayoutParams lp = (LayoutParams) child.getLayoutParams();
        if (!lp.isDecor) {
            removeViewAt(i);
            i--;
        }
    }
}
 
Example 17
Source File: FlowLayout.java    From FlowHelper with Apache License 2.0 4 votes vote down vote up
/**
 * 测试tabflowlayout竖直状态
 * @param widthMeasureSpec
 * @param heightMeasureSpec
 */
private void measureTabVertical(int widthMeasureSpec, int heightMeasureSpec) {
    int widthMode = MeasureSpec.getMode(widthMeasureSpec);
    int widthSize = MeasureSpec.getSize(widthMeasureSpec);
    int heightMode = MeasureSpec.getMode(heightMeasureSpec);
    int heightSize = MeasureSpec.getSize(heightMeasureSpec);

    int childCount = getChildCount();
    int width = 0;
    int height = 0;

    for (int i = 0; i < childCount; i++) {
        View child = getChildAt(i);
        if (child.getVisibility() == GONE) {
            continue;
        }
        measureChild(child, widthMeasureSpec, heightMeasureSpec);
        MarginLayoutParams params = (MarginLayoutParams) child.getLayoutParams();
        //拿到 子控件宽高 + margin
        int cw = child.getMeasuredWidth() + params.leftMargin + params.rightMargin;
        int ch = child.getMeasuredHeight() + params.topMargin + params.bottomMargin;

        height += ch;

        width = Math.max(width, cw);
    }

    if (MeasureSpec.EXACTLY == widthMode ) {
        width = widthSize;
    } else {
        width += getPaddingLeft() + getPaddingRight();
    }
    if (MeasureSpec.EXACTLY == heightMode) {
        height = heightSize;
    } else {
        height += getPaddingTop() + getPaddingBottom();
    }

    mViewHeight = height;
    setMeasuredDimension(width, height);
}
 
Example 18
Source File: FamiliarDefaultItemDecoration.java    From FamiliarRecyclerView with MIT License 4 votes vote down vote up
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
    if (mVerticalDividerDrawableHeight <= 0 && mHorizontalDividerDrawableHeight <= 0) return;

    RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) view.getLayoutParams();
    int position = params.getViewAdapterPosition();
    int headersCount;
    int footerCount;
    int itemViewCount;
    FamiliarRecyclerView curFamiliarRecyclerView = null;
    if (parent instanceof FamiliarRecyclerView) {
        curFamiliarRecyclerView = (FamiliarRecyclerView) parent;

        footerCount = curFamiliarRecyclerView.getFooterViewsCount();
        headersCount = curFamiliarRecyclerView.getHeaderViewsCount();
        itemViewCount = curFamiliarRecyclerView.getAdapter().getItemCount() - headersCount - footerCount;
    } else {
        headersCount = 0;
        footerCount = 0;
        itemViewCount = parent.getAdapter().getItemCount();
    }

    // intercept filter
    if (isInterceptFilter(position, headersCount, footerCount, itemViewCount)) return;

    // set headView or footerView
    if (isHeadViewPos(headersCount, position)) {
        // head
        if (mOrientation == OrientationHelper.HORIZONTAL) {
            outRect.set(mVerticalDividerDrawableHeight, 0, 0, 0);
        } else {
            outRect.set(0, mHorizontalDividerDrawableHeight, 0, 0);
        }
        return;
    } else if (isFooterViewPos(headersCount, footerCount, itemViewCount, position)) {
        // footer
        if (mOrientation == OrientationHelper.HORIZONTAL) {
            outRect.set(mVerticalDividerDrawableHeight, 0, 0, 0);
        } else {
            outRect.set(0, mHorizontalDividerDrawableHeight, 0, 0);
        }
        return;
    } else if (isEmptyView(curFamiliarRecyclerView, position, headersCount)) {
        // emptyView
        if (isHeaderDividersEnabled && headersCount > 0) {
            if (mOrientation == OrientationHelper.HORIZONTAL) {
                outRect.set(mVerticalDividerDrawableHeight, 0, 0, 0);
            } else {
                outRect.set(0, mHorizontalDividerDrawableHeight, 0, 0);
            }
        }
        return;
    }

    // set itemView
    if (mLayoutManagerType == FamiliarRecyclerView.LAYOUT_MANAGER_TYPE_GRID || mLayoutManagerType == FamiliarRecyclerView.LAYOUT_MANAGER_TYPE_STAGGERED_GRID) {
        processGridOffsets(outRect, position, headersCount, view);
    } else {
        int topOrLeftSize;
        if ((!isHeaderDividersEnabled || headersCount == 0) && position - headersCount == 0) {
            topOrLeftSize = 0;
        } else {
            topOrLeftSize = mOrientation == OrientationHelper.VERTICAL ? mHorizontalDividerDrawableHeight : mVerticalDividerDrawableHeight;
        }

        if (mOrientation == OrientationHelper.HORIZONTAL) {
            outRect.set(topOrLeftSize, mItemViewBothSidesMargin, 0, mItemViewBothSidesMargin);
        } else {
            outRect.set(mItemViewBothSidesMargin, topOrLeftSize, mItemViewBothSidesMargin, 0);
        }
    }
}
 
Example 19
Source File: DemoActivity.java    From Phlux with MIT License 4 votes vote down vote up
private void setWeight(int id, float progress) {
    View before = findViewById(id);
    LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) before.getLayoutParams();
    layoutParams.weight = progress;
    before.requestLayout();
}
 
Example 20
Source File: SwipeItemLayout.java    From PocketEOS-Android with GNU Lesser General Public License v3.0 4 votes vote down vote up
private int getAbsoluteGravity(View menu) {
    final int gravity = ((LayoutParams) menu.getLayoutParams()).gravity;
    return GravityCompat.getAbsoluteGravity(gravity, ViewCompat.getLayoutDirection(this));
}