Search in sources :

Example 1 with CSSNode

use of com.facebook.csslayout.CSSNode in project LuaViewSDK by alibaba.

the class UDView method setFlexCss.

public UDView setFlexCss(String cssString) {
    if (mFlexCss == null || !mFlexCss.equals(cssString)) {
        CSSNode node = getCssNode();
        FlexboxCSSParser.parseFlexNodeCSS(node, cssString);
        mFlexCss = cssString;
    }
    return this;
}
Also used : CSSNode(com.facebook.csslayout.CSSNode)

Example 2 with CSSNode

use of com.facebook.csslayout.CSSNode in project LuaViewSDK by alibaba.

the class LVViewGroup method measureChildNode.

private void measureChildNode(int widthMeasureSpec, int heightMeasureSpec) {
    int childNodeViewsCount = mChildNodeViews.size();
    for (int i = 0; i < childNodeViewsCount; i++) {
        UDView nodeView = mChildNodeViews.get(i);
        View view = nodeView.getView();
        CSSNode node = nodeView.getCssNode();
        if (node.getSizeToFit()) {
            int margins = (int) (node.getMargin().get(Spacing.LEFT) + node.getMargin().get(Spacing.RIGHT));
            measureChild(view, widthMeasureSpec - margins, heightMeasureSpec);
            node.setNoDirtyStyleWidth(view.getMeasuredWidth());
            node.setNoDirtyStyleHeight(view.getMeasuredHeight());
        }
        if (view instanceof LVViewGroup) {
            LVViewGroup viewGroup = (LVViewGroup) view;
            if (viewGroup.getCssNode().getChildCount() > 0) {
                viewGroup.measureChildNode(widthMeasureSpec, heightMeasureSpec);
            }
        }
    }
}
Also used : UDView(com.taobao.luaview.userdata.ui.UDView) UDView(com.taobao.luaview.userdata.ui.UDView) View(android.view.View) ILVViewGroup(com.taobao.luaview.view.interfaces.ILVViewGroup) CSSNode(com.facebook.csslayout.CSSNode)

Example 3 with CSSNode

use of com.facebook.csslayout.CSSNode in project LuaViewSDK by alibaba.

the class LVViewGroup method assignNodeLayoutParams.

private void assignNodeLayoutParams() {
    int childNodeViewsCount = mChildNodeViews.size();
    for (int i = 0; i < childNodeViewsCount; i++) {
        UDView nodeView = mChildNodeViews.get(i);
        View view = nodeView.getView();
        CSSNode node = nodeView.getCssNode();
        if (view != null && node != null) {
            int x = (int) node.getLayoutX();
            int y = (int) node.getLayoutY();
            int width = (int) node.getLayoutWidth();
            int height = (int) node.getLayoutHeight();
            RelativeLayout.LayoutParams lParams = (LayoutParams) view.getLayoutParams();
            if (lParams == null) {
                lParams = new RelativeLayout.LayoutParams(width, height);
            } else {
                lParams.width = width;
                lParams.height = height;
            }
            lParams.setMargins(x, y, 0, 0);
            view.setLayoutParams(lParams);
            if (view instanceof LVViewGroup) {
                LVViewGroup viewGroup = (LVViewGroup) view;
                if (viewGroup.getCssNode().getChildCount() > 0) {
                    viewGroup.assignNodeLayoutParams();
                }
            }
        }
    }
}
Also used : UDView(com.taobao.luaview.userdata.ui.UDView) RelativeLayout(android.widget.RelativeLayout) ForegroundRelativeLayout(com.taobao.luaview.view.foreground.ForegroundRelativeLayout) UDView(com.taobao.luaview.userdata.ui.UDView) View(android.view.View) ILVViewGroup(com.taobao.luaview.view.interfaces.ILVViewGroup) CSSNode(com.facebook.csslayout.CSSNode)

Aggregations

CSSNode (com.facebook.csslayout.CSSNode)3 View (android.view.View)2 UDView (com.taobao.luaview.userdata.ui.UDView)2 ILVViewGroup (com.taobao.luaview.view.interfaces.ILVViewGroup)2 RelativeLayout (android.widget.RelativeLayout)1 ForegroundRelativeLayout (com.taobao.luaview.view.foreground.ForegroundRelativeLayout)1