fix what effects only on DoricLayer
This commit is contained in:
parent
6b4bc9cd0f
commit
007898329f
@ -21,6 +21,7 @@ import android.animation.ObjectAnimator;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.drawable.ColorDrawable;
|
import android.graphics.drawable.ColorDrawable;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
@ -462,19 +463,30 @@ public abstract class ViewNode<T extends View> extends DoricContextHolder {
|
|||||||
|
|
||||||
@DoricMethod
|
@DoricMethod
|
||||||
public float getWidth() {
|
public float getWidth() {
|
||||||
return DoricUtils.px2dp(getNodeView().getWidth());
|
if (mLayoutParams.width >= 0) {
|
||||||
|
return DoricUtils.px2dp(mLayoutParams.width);
|
||||||
|
} else {
|
||||||
|
return mView.getMeasuredWidth();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@DoricMethod
|
@DoricMethod
|
||||||
public float getHeight() {
|
public float getHeight() {
|
||||||
return DoricUtils.px2dp(getNodeView().getHeight());
|
if (mLayoutParams.width >= 0) {
|
||||||
|
return DoricUtils.px2dp(mLayoutParams.height);
|
||||||
|
} else {
|
||||||
|
return mView.getMeasuredHeight();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@DoricMethod
|
@DoricMethod
|
||||||
protected void setWidth(float width) {
|
protected void setWidth(float width) {
|
||||||
if (mLayoutParams.width >= 0) {
|
if (mLayoutParams.width >= 0) {
|
||||||
mLayoutParams.width = DoricUtils.dp2px(width);
|
mLayoutParams.width = DoricUtils.dp2px(width);
|
||||||
mView.requestLayout();
|
if (mView.getLayoutParams() != mLayoutParams) {
|
||||||
|
mView.getLayoutParams().width = mLayoutParams.width;
|
||||||
|
}
|
||||||
|
getNodeView().requestLayout();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -482,7 +494,10 @@ public abstract class ViewNode<T extends View> extends DoricContextHolder {
|
|||||||
protected void setHeight(float height) {
|
protected void setHeight(float height) {
|
||||||
if (mLayoutParams.height >= 0) {
|
if (mLayoutParams.height >= 0) {
|
||||||
mLayoutParams.height = DoricUtils.dp2px(height);
|
mLayoutParams.height = DoricUtils.dp2px(height);
|
||||||
mView.requestLayout();
|
if (mView.getLayoutParams() != mLayoutParams) {
|
||||||
|
mView.getLayoutParams().height = mLayoutParams.height;
|
||||||
|
}
|
||||||
|
getNodeView().requestLayout();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -490,7 +505,7 @@ public abstract class ViewNode<T extends View> extends DoricContextHolder {
|
|||||||
protected void setX(float x) {
|
protected void setX(float x) {
|
||||||
if (mLayoutParams instanceof ViewGroup.MarginLayoutParams) {
|
if (mLayoutParams instanceof ViewGroup.MarginLayoutParams) {
|
||||||
((ViewGroup.MarginLayoutParams) mLayoutParams).leftMargin = DoricUtils.dp2px(x);
|
((ViewGroup.MarginLayoutParams) mLayoutParams).leftMargin = DoricUtils.dp2px(x);
|
||||||
mView.requestLayout();
|
getNodeView().requestLayout();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -498,7 +513,7 @@ public abstract class ViewNode<T extends View> extends DoricContextHolder {
|
|||||||
protected void setY(float y) {
|
protected void setY(float y) {
|
||||||
if (mLayoutParams instanceof ViewGroup.MarginLayoutParams) {
|
if (mLayoutParams instanceof ViewGroup.MarginLayoutParams) {
|
||||||
((ViewGroup.MarginLayoutParams) mLayoutParams).topMargin = DoricUtils.dp2px(y);
|
((ViewGroup.MarginLayoutParams) mLayoutParams).topMargin = DoricUtils.dp2px(y);
|
||||||
mView.requestLayout();
|
getNodeView().requestLayout();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user