# LayoutDesigner **Repository Path**: kkaheng/layout-designer ## Basic Information - **Project Name**: LayoutDesigner - **Description**: 可视化布局器 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-12-24 - **Last Updated**: 2026-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 安卓平台的通用可视化布局器 ## 使用方式 ### 安卓XML布局 1. 加载布局 ```java // 首次初始化注册UI组件 MaterialUI.registerMaterialUI(); // 创建布局器 AndroidLayoutDesigner designer = new AndroidLayoutDesigner(context); View view = designer.getView(); // 加载语言相关的数据 Config config = new Config(); config.assetManager = assets; layoutDesigner.init(config); // 解析 XML 代码 Node root = XmlUtils.parse(xmlCode, classLoader); // 设置到设计器 designer.setDocument(root); // 设置到页面 setContentView(view); ``` 2. 获取代码 ```java XmlBuilder builder = new XmlBuilder<>(); builder.setForAndroid(true); // 适配安卓 builder.setIndentEnabled(true); // 启用缩进 builder.setNodeReader(new XmlBuilder.NodeReader<>() { @Override public int getChildCount(Node node) { return node.length(); } @Override public Node getChild(Node parent, int index) { return parent.get(index); } @Override public String getTagName(Node node) { return node.getSourceName(); } @Override public Map getProperties(Node node) { return node.properties(); } }); String xmlCode = builder.start(designer.getDocument()); ``` > 更多详细用法参考项目中的 Demo。 ## 项目集成 1. 克隆本仓库。(可删除不需要的语言模块/平台模块) 2. 依赖项目根目录的`libs`文件夹。(如`implementation fileTree(dir: '../../libs', include: [ '*.jar', '*.aar' ])`) 3. 添加以下依赖 - Android Appcompat:`androidx.appcompat:appcompat`。 - Android Material:`com.google.android.material:material`。 - Android SVG:`com.caverock:androidsvg`。 - Flexbox:`com.google.android.flexbox:flexbox`。 4. 依赖具体语言模块。(如`implementation project(':languages:android')`) ## 项目结构 - **core**:核心功能 - **java**: - **property-desc**:属性编辑器描述符 - **languages**: - **android**:安卓XML布局支持。 - **tiecode-android**:结绳安卓TLY布局支持(未实现)。 - **platform**: - **app**:Demo 演示。 - **rmx**:QiStudio/结绳插件。 - **ui**:可视化布局器UI组件。