Search in sources :

Example 1 with UDView

use of com.taobao.luaview.userdata.ui.UDView in project LuaViewSDK by alibaba.

the class UIViewGroupMethodMapper method flexChildren.

/**
     * Flexbox 设置childViews
     *
     * @param view
     * @param varargs
     * @return
     */
public LuaValue flexChildren(U view, Varargs varargs) {
    ArrayList<UDView> flexChildren = new ArrayList<UDView>();
    for (int i = 2; i <= varargs.narg(); i++) {
        LuaValue luaValue = varargs.optvalue(i, null);
        if (luaValue != null && luaValue instanceof UDView) {
            flexChildren.add((UDView) luaValue);
        }
    }
    view.setChildNodeViews(flexChildren);
    return view;
}
Also used : UDView(com.taobao.luaview.userdata.ui.UDView) ArrayList(java.util.ArrayList) LuaValue(org.luaj.vm2.LuaValue)

Example 2 with UDView

use of com.taobao.luaview.userdata.ui.UDView in project LuaViewSDK by alibaba.

the class LVPageFragment method onCreateView.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    //View封装
    //TODO 为什么用mLuaUserData.getmetatable()不行
    final UDView page = new UDViewGroup(createPageLayout(), mGlobals, null);
    //对外数据封装,必须使用LuaTable
    final UDLuaTable pageData = new UDLuaTable(page);
    final View pageView = pageData.getView();
    //初始化View
    initView(pageData, mPosInViewPager);
    //绘制数据
    renderView(pageData, mPosInViewPager);
    return pageView;
}
Also used : UDLuaTable(com.taobao.luaview.userdata.base.UDLuaTable) UDViewGroup(com.taobao.luaview.userdata.ui.UDViewGroup) UDView(com.taobao.luaview.userdata.ui.UDView) UDView(com.taobao.luaview.userdata.ui.UDView) View(android.view.View)

Example 3 with UDView

use of com.taobao.luaview.userdata.ui.UDView in project LuaViewSDK by alibaba.

the class LVViewGroup method clearChildNodeViews.

private void clearChildNodeViews() {
    if (mChildNodeViews == null) {
        return;
    }
    int childNodeViewsCount = mChildNodeViews.size();
    for (int i = 0; i < childNodeViewsCount; i++) {
        UDView nodeView = mChildNodeViews.get(i);
        View view = nodeView.getView();
        removeView(view);
    }
    getCssNode().resetChildren();
}
Also used : UDView(com.taobao.luaview.userdata.ui.UDView) UDView(com.taobao.luaview.userdata.ui.UDView) View(android.view.View)

Example 4 with UDView

use of com.taobao.luaview.userdata.ui.UDView in project LuaViewSDK by alibaba.

the class LVViewGroup method generateNodeViewTree.

private void generateNodeViewTree() {
    if (mChildNodeViews == null) {
        return;
    }
    int childNodeViewsCount = mChildNodeViews.size();
    for (int i = 0; i < childNodeViewsCount; i++) {
        UDView nodeView = mChildNodeViews.get(i);
        View view = nodeView.getView();
        LuaViewUtil.addView(this, view, null);
        getCssNode().addChild(nodeView.getCssNode());
    }
}
Also used : UDView(com.taobao.luaview.userdata.ui.UDView) UDView(com.taobao.luaview.userdata.ui.UDView) View(android.view.View)

Example 5 with UDView

use of com.taobao.luaview.userdata.ui.UDView in project LuaViewSDK by alibaba.

the class DestroyUtil method onDestroyTable.

public static void onDestroyTable(LuaTable table) {
    if (table != null) {
        LuaValue isDestroy = table.get(KEY_DESTROY);
        if (isDestroy == null || !LuaBoolean.TRUE.eq_b(isDestroy)) {
            //标志位
            table.set(KEY_DESTROY, LuaBoolean.TRUE);
            LuaValue value = null;
            View view = null;
            for (LuaValue key : table.keys()) {
                value = table.get(key);
                if (value instanceof UDView) {
                    view = ((UDView) value).getView();
                    if (view instanceof ViewGroup) {
                        clearViews((ViewGroup) view);
                    } else {
                        ((UDView) value).onDestroy();
                    }
                } else if (value instanceof BaseUserdata) {
                    ((BaseUserdata) value).onDestroy();
                } else if (value instanceof LuaTable) {
                    onDestroyTable((LuaTable) value);
                }
            }
        }
    }
}
Also used : LuaTable(org.luaj.vm2.LuaTable) UDView(com.taobao.luaview.userdata.ui.UDView) ViewGroup(android.view.ViewGroup) BaseUserdata(com.taobao.luaview.userdata.base.BaseUserdata) LuaValue(org.luaj.vm2.LuaValue) UDView(com.taobao.luaview.userdata.ui.UDView) View(android.view.View) ILVView(com.taobao.luaview.view.interfaces.ILVView)

Aggregations

UDView (com.taobao.luaview.userdata.ui.UDView)12 View (android.view.View)9 UDLuaTable (com.taobao.luaview.userdata.base.UDLuaTable)3 UDViewGroup (com.taobao.luaview.userdata.ui.UDViewGroup)3 LuaValue (org.luaj.vm2.LuaValue)3 ViewGroup (android.view.ViewGroup)2 CSSNode (com.facebook.csslayout.CSSNode)2 ILVView (com.taobao.luaview.view.interfaces.ILVView)2 ILVViewGroup (com.taobao.luaview.view.interfaces.ILVViewGroup)2 AbsListView (android.widget.AbsListView)1 RelativeLayout (android.widget.RelativeLayout)1 BaseUserdata (com.taobao.luaview.userdata.base.BaseUserdata)1 UDBaseListView (com.taobao.luaview.userdata.list.UDBaseListView)1 LVViewGroup (com.taobao.luaview.view.LVViewGroup)1 ForegroundRelativeLayout (com.taobao.luaview.view.foreground.ForegroundRelativeLayout)1 PageIndicator (com.taobao.luaview.view.indicator.circle.PageIndicator)1 ArrayList (java.util.ArrayList)1 LuaTable (org.luaj.vm2.LuaTable)1