int padding = mIsRtl ? mText.getPaddingLeft() : mText.getPaddingRight(); mText.measure(MeasureSpec.makeMeasureSpec(widthSize - (mAction.getMeasuredWidth() - padding), widthMode), heightMeasureSpec); width = mText.getMeasuredWidth() + mAction.getMeasuredWidth() - padding;
/** * Set the vertical padding between this SnackBar and it's text and button. * @param padding * @return This SnackBar for chaining methods. */ public SnackBar verticalPadding(int padding){ mText.setPadding(mText.getPaddingLeft(), padding, mText.getPaddingRight(), padding); mAction.setPadding(mAction.getPaddingLeft(), padding, mAction.getPaddingRight(), padding); return this; }
padding(horizontalPadding >= 0 ? horizontalPadding : mText.getPaddingLeft(), verticalPadding >= 0 ? verticalPadding : mText.getPaddingTop());
@Override protected void onLayout(boolean changed, int l, int t, int r, int b) { int childLeft = getPaddingLeft(); int childRight = r - l - getPaddingRight(); int childTop = getPaddingTop(); int childBottom = b - t - getPaddingBottom(); if(mAction.getVisibility() == View.VISIBLE){ if(mIsRtl) { mAction.layout(childLeft, childTop, childLeft + mAction.getMeasuredWidth(), childBottom); childLeft += mAction.getMeasuredWidth() - mText.getPaddingLeft(); } else { mAction.layout(childRight - mAction.getMeasuredWidth(), childTop, childRight, childBottom); childRight -= mAction.getMeasuredWidth() - mText.getPaddingRight(); } } mText.layout(childLeft, childTop, childRight, childBottom); }