You've already forked android_translation_layer
mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-10-27 11:48:10 -07:00
Add paddings and improved margins
This commit is contained in:
@@ -834,6 +834,11 @@ public class View implements Drawable.Callback {
|
||||
private int minWidth = 0;
|
||||
private int minHeight = 0;
|
||||
|
||||
protected int paddingLeft = 0;
|
||||
protected int paddingTop = 0;
|
||||
protected int paddingRight = 0;
|
||||
protected int paddingBottom = 0;
|
||||
|
||||
public static final Property<View, Float> TRANSLATION_X = new Property<View, Float>(Float.class, "translationX") {
|
||||
@Override
|
||||
public Float get(View object) {
|
||||
@@ -896,6 +901,47 @@ public class View implements Drawable.Callback {
|
||||
if (a.hasValue(com.android.internal.R.styleable.View_minHeight)) {
|
||||
minHeight = a.getDimensionPixelSize(com.android.internal.R.styleable.View_minHeight, 0);
|
||||
}
|
||||
|
||||
int padding = a.getDimensionPixelSize(com.android.internal.R.styleable.View_padding, -1);
|
||||
|
||||
int paddingVertical = a.getDimensionPixelSize(com.android.internal.R.styleable.View_paddingVertical, -1);
|
||||
int paddingHorizontal = a.getDimensionPixelSize(com.android.internal.R.styleable.View_paddingHorizontal, -1);
|
||||
|
||||
int paddingStart = a.getDimensionPixelSize(com.android.internal.R.styleable.View_paddingStart, -1);
|
||||
int paddingEnd = a.getDimensionPixelSize(com.android.internal.R.styleable.View_paddingEnd, -1);
|
||||
|
||||
if(padding >= 0) {
|
||||
paddingLeft = padding;
|
||||
paddingTop = padding;
|
||||
paddingRight = padding;
|
||||
paddingBottom = padding;
|
||||
} else {
|
||||
if(paddingVertical >= 0) {
|
||||
paddingTop = paddingVertical;
|
||||
paddingBottom = paddingVertical;
|
||||
} else {
|
||||
paddingTop = a.getDimensionPixelSize(com.android.internal.R.styleable.View_paddingTop, 0);
|
||||
paddingBottom = a.getDimensionPixelSize(com.android.internal.R.styleable.View_paddingBottom, 0);
|
||||
}
|
||||
|
||||
if(paddingHorizontal >= 0) {
|
||||
paddingLeft = paddingHorizontal;
|
||||
paddingRight = paddingHorizontal;
|
||||
} else {
|
||||
paddingLeft = a.getDimensionPixelSize(com.android.internal.R.styleable.View_paddingLeft, 0);
|
||||
paddingRight = a.getDimensionPixelSize(com.android.internal.R.styleable.View_paddingRight, 0);
|
||||
|
||||
if(paddingStart >= 0) {
|
||||
paddingLeft = paddingStart;
|
||||
}
|
||||
|
||||
if(paddingEnd >= 0) {
|
||||
paddingRight = paddingEnd;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
native_setPadding(widget, paddingLeft, paddingTop, paddingRight, paddingBottom);
|
||||
}
|
||||
onCreateDrawableState(0);
|
||||
}
|
||||
@@ -1105,7 +1151,16 @@ public class View implements Drawable.Callback {
|
||||
}
|
||||
this.visibility = visibility;
|
||||
}
|
||||
public void setPadding(int left, int top, int right, int bottom) {}
|
||||
|
||||
public void setPadding(int left, int top, int right, int bottom) {
|
||||
paddingLeft = left;
|
||||
paddingTop = top;
|
||||
paddingRight = right;
|
||||
paddingBottom = bottom;
|
||||
native_setPadding(widget, left, top, right, bottom);
|
||||
}
|
||||
public native void native_setPadding(long widget, int left, int top, int right, int bottom);
|
||||
|
||||
public void setBackgroundResource(int resid) {
|
||||
setBackgroundDrawable(resid == 0 ? null : getResources().getDrawable(resid));
|
||||
}
|
||||
@@ -1149,27 +1204,27 @@ public class View implements Drawable.Callback {
|
||||
}
|
||||
|
||||
public int getPaddingLeft() {
|
||||
return 0;
|
||||
return paddingLeft;
|
||||
}
|
||||
|
||||
public int getPaddingRight() {
|
||||
return 0;
|
||||
return paddingRight;
|
||||
}
|
||||
|
||||
public int getPaddingTop() {
|
||||
return 0;
|
||||
return paddingTop;
|
||||
}
|
||||
|
||||
public int getPaddingBottom() {
|
||||
return 0;
|
||||
return paddingBottom;
|
||||
}
|
||||
|
||||
public int getPaddingStart() {
|
||||
return 0;
|
||||
return paddingLeft;
|
||||
}
|
||||
|
||||
public int getPaddingEnd() {
|
||||
return 0;
|
||||
return paddingRight;
|
||||
}
|
||||
|
||||
public void postInvalidate() {
|
||||
|
||||
@@ -261,20 +261,16 @@ public class ViewGroup extends View implements ViewParent, ViewManager {
|
||||
int parentWidthMeasureSpec, int widthUsed,
|
||||
int parentHeightMeasureSpec, int heightUsed) {
|
||||
final MarginLayoutParams lp = (MarginLayoutParams)child.getLayoutParams();
|
||||
final int childWidthMeasureSpec = getChildMeasureSpec(parentWidthMeasureSpec,
|
||||
/*mPaddingLeft + mPaddingRight +*/ lp.leftMargin + lp.rightMargin + widthUsed, lp.width);
|
||||
final int childHeightMeasureSpec = getChildMeasureSpec(parentHeightMeasureSpec,
|
||||
/*mPaddingTop + mPaddingBottom +*/ lp.topMargin + lp.bottomMargin + heightUsed, lp.height);
|
||||
final int childWidthMeasureSpec = getChildMeasureSpec(parentWidthMeasureSpec, paddingLeft + paddingRight + lp.leftMargin + lp.rightMargin + widthUsed, lp.width);
|
||||
final int childHeightMeasureSpec = getChildMeasureSpec(parentHeightMeasureSpec, paddingTop + paddingBottom + lp.topMargin + lp.bottomMargin + heightUsed, lp.height);
|
||||
child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
|
||||
}
|
||||
|
||||
protected void measureChild(View child, int parentWidthMeasureSpec,
|
||||
int parentHeightMeasureSpec) {
|
||||
final LayoutParams lp = child.getLayoutParams();
|
||||
final int childWidthMeasureSpec = getChildMeasureSpec(parentWidthMeasureSpec,
|
||||
/*mPaddingLeft + mPaddingRight*/ 0, lp.width);
|
||||
final int childHeightMeasureSpec = getChildMeasureSpec(parentHeightMeasureSpec,
|
||||
/*mPaddingTop + mPaddingBottom*/ 0, lp.height);
|
||||
final int childWidthMeasureSpec = getChildMeasureSpec(parentWidthMeasureSpec, paddingLeft + paddingRight, lp.width);
|
||||
final int childHeightMeasureSpec = getChildMeasureSpec(parentHeightMeasureSpec, paddingTop + paddingBottom, lp.height);
|
||||
child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
|
||||
}
|
||||
|
||||
@@ -453,19 +449,50 @@ public class ViewGroup extends View implements ViewParent, ViewManager {
|
||||
|
||||
public MarginLayoutParams(Context context, AttributeSet attributeSet) {
|
||||
super(context, attributeSet);
|
||||
TypedArray a = context.obtainStyledAttributes(attributeSet, R.styleable.ViewGroup_MarginLayout);
|
||||
TypedArray a = context.obtainStyledAttributes(attributeSet, com.android.internal.R.styleable.ViewGroup_MarginLayout);
|
||||
|
||||
int margin = a.getDimensionPixelSize(com.android.internal.R.styleable.ViewGroup_MarginLayout_layout_margin, -1);
|
||||
|
||||
int marginVertical = a.getDimensionPixelSize(com.android.internal.R.styleable.ViewGroup_MarginLayout_layout_marginVertical, -1);
|
||||
int marginHorizontal = a.getDimensionPixelSize(com.android.internal.R.styleable.ViewGroup_MarginLayout_layout_marginHorizontal, -1);
|
||||
|
||||
int marginStart = a.getDimensionPixelSize(com.android.internal.R.styleable.ViewGroup_MarginLayout_layout_marginStart, -1);
|
||||
int marginEnd = a.getDimensionPixelSize(com.android.internal.R.styleable.ViewGroup_MarginLayout_layout_marginEnd, -1);
|
||||
|
||||
leftMargin = 0;
|
||||
topMargin = 0;
|
||||
rightMargin = 0;
|
||||
bottomMargin = 0;
|
||||
|
||||
if (margin >= 0) {
|
||||
leftMargin = margin;
|
||||
topMargin = margin;
|
||||
rightMargin= margin;
|
||||
bottomMargin = margin;
|
||||
} else {
|
||||
leftMargin = a.getDimensionPixelSize(R.styleable.ViewGroup_MarginLayout_layout_marginLeft,0);
|
||||
rightMargin = a.getDimensionPixelSize(R.styleable.ViewGroup_MarginLayout_layout_marginRight,0);
|
||||
topMargin = a.getDimensionPixelSize(R.styleable.ViewGroup_MarginLayout_layout_marginTop,0);
|
||||
bottomMargin = a.getDimensionPixelSize(R.styleable.ViewGroup_MarginLayout_layout_marginBottom,0);
|
||||
if(marginVertical >= 0){
|
||||
topMargin = marginVertical;
|
||||
bottomMargin = marginVertical;
|
||||
} else {
|
||||
topMargin = a.getDimensionPixelSize(com.android.internal.R.styleable.ViewGroup_MarginLayout_layout_marginTop, 0);
|
||||
bottomMargin = a.getDimensionPixelSize(com.android.internal.R.styleable.ViewGroup_MarginLayout_layout_marginBottom, 0);
|
||||
}
|
||||
|
||||
if (marginHorizontal >= 0) {
|
||||
leftMargin = marginHorizontal;
|
||||
rightMargin = marginHorizontal;
|
||||
} else {
|
||||
leftMargin = a.getDimensionPixelSize(com.android.internal.R.styleable.ViewGroup_MarginLayout_layout_marginLeft, 0);
|
||||
rightMargin = a.getDimensionPixelSize(com.android.internal.R.styleable.ViewGroup_MarginLayout_layout_marginRight, 0);
|
||||
|
||||
if (marginStart >= 0) {
|
||||
leftMargin = marginStart;
|
||||
}
|
||||
|
||||
if (marginEnd >= 0) {
|
||||
rightMargin = marginEnd;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
a.recycle();
|
||||
|
||||
Reference in New Issue
Block a user