feat:fix Android weight props blend error

This commit is contained in:
pengfei.zhou
2019-11-16 17:35:42 +08:00
parent 1b08c227ef
commit b3ef2004fc
3 changed files with 52 additions and 22 deletions

View File

@@ -16,6 +16,7 @@
package pub.doric.shader;
import android.util.TypedValue;
import android.view.Gravity;
import android.widget.TextView;
import pub.doric.DoricContext;
@@ -52,7 +53,7 @@ public class TextNode extends ViewNode<TextView> {
view.setTextColor(prop.asNumber().toInt());
break;
case "textAlignment":
view.setGravity(prop.asNumber().toInt());
view.setGravity(prop.asNumber().toInt() | Gravity.CENTER_VERTICAL);
break;
default:
super.blend(view, name, prop);

View File

@@ -19,6 +19,7 @@ import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import pub.doric.DoricContext;
import pub.doric.DoricRegistry;
@@ -66,7 +67,7 @@ public abstract class ViewNode<T extends View> extends DoricContextHolder {
this.mId = id;
}
public String getType(){
public String getType() {
return mType;
}
@@ -93,6 +94,14 @@ public abstract class ViewNode<T extends View> extends DoricContextHolder {
} else {
params = mLayoutParams;
}
if (mLayoutParams instanceof LinearLayout.LayoutParams && ((LinearLayout.LayoutParams) mLayoutParams).weight > 0) {
if (mSuperNode instanceof VLayoutNode) {
params.height = ViewGroup.LayoutParams.MATCH_PARENT;
} else if (mSuperNode instanceof HLayoutNode) {
params.width = ViewGroup.LayoutParams.MATCH_PARENT;
}
}
mView.setLayoutParams(params);
}