mirror of
https://github.com/BetterAndroid/Hikage.git
synced 2025-09-07 19:14:22 +08:00
113 lines
50 KiB
HTML
113 lines
50 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<meta name="generator" content="VuePress 2.0.0-rc.0">
|
|
<style>
|
|
:root {
|
|
--c-bg: #fff;
|
|
}
|
|
html.dark {
|
|
--c-bg: #22272e;
|
|
}
|
|
html, body {
|
|
background-color: var(--c-bg);
|
|
}
|
|
</style>
|
|
<script>
|
|
const userMode = localStorage.getItem('vuepress-color-scheme');
|
|
const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
if (userMode === 'dark' || (userMode !== 'light' && systemDarkMode)) {
|
|
document.documentElement.classList.toggle('dark', true);
|
|
}
|
|
</script>
|
|
<link rel="icon" href="/Hikage/images/logo.svg"><title>hikage-compiler | Hikage</title><meta name="description" content="一个 Android 响应式 UI 构建工具">
|
|
<link rel="preload" href="/Hikage/assets/style-Rgr8LWAc.css" as="style"><link rel="stylesheet" href="/Hikage/assets/style-Rgr8LWAc.css">
|
|
<link rel="modulepreload" href="/Hikage/assets/app-ZnF1aHNS.js"><link rel="modulepreload" href="/Hikage/assets/hikage-compiler.html-_B_hgKuq.js"><link rel="modulepreload" href="/Hikage/assets/hikage-compiler.html-1bP0HyAG.js">
|
|
<link rel="prefetch" href="/Hikage/assets/index.html-l1SiVQn7.js" as="script"><link rel="prefetch" href="/Hikage/assets/index.html-UG_FDMyX.js" as="script"><link rel="prefetch" href="/Hikage/assets/index.html-FjffWWA4.js" as="script"><link rel="prefetch" href="/Hikage/assets/about.html--JeJn6VX.js" as="script"><link rel="prefetch" href="/Hikage/assets/changelog.html-XGYIsSRg.js" as="script"><link rel="prefetch" href="/Hikage/assets/contacts.html-uhRwpcjF.js" as="script"><link rel="prefetch" href="/Hikage/assets/future.html-Oos9rVeC.js" as="script"><link rel="prefetch" href="/Hikage/assets/r8-proguard.html-QTtfAIoi.js" as="script"><link rel="prefetch" href="/Hikage/assets/home.html-hszD4rJy.js" as="script"><link rel="prefetch" href="/Hikage/assets/quick-start.html-OQgpPsXK.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-compiler.html-OOEYxzA1.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-core.html-6tGPbRmk.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-extension-betterandroid.html--TiJmBKm.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-extension-compose.html-K6jgaZLv.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-extension.html-lJSuuqUt.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-widget-androidx.html-uy8ylSjq.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-widget-material.html-SrWOBHqa.js" as="script"><link rel="prefetch" href="/Hikage/assets/about.html-aNmPduyK.js" as="script"><link rel="prefetch" href="/Hikage/assets/changelog.html-TDQcoCY9.js" as="script"><link rel="prefetch" href="/Hikage/assets/contacts.html-e3ZRLGK_.js" as="script"><link rel="prefetch" href="/Hikage/assets/future.html-REnhLrdo.js" as="script"><link rel="prefetch" href="/Hikage/assets/r8-proguard.html-_aL0ZPoj.js" as="script"><link rel="prefetch" href="/Hikage/assets/home.html-FkAIX882.js" as="script"><link rel="prefetch" href="/Hikage/assets/quick-start.html-duoa-o83.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-core.html-gVi6UZx8.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-extension-betterandroid.html-EgKZos03.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-extension-compose.html-RxxykmCH.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-extension.html-cbepB2QD.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-widget-androidx.html-Kk_4er0h.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-widget-material.html-Z3imNZV7.js" as="script"><link rel="prefetch" href="/Hikage/assets/404.html-6Yl8cQE3.js" as="script"><link rel="prefetch" href="/Hikage/assets/index.html-BxYx2COm.js" as="script"><link rel="prefetch" href="/Hikage/assets/index.html-WTe5lrNs.js" as="script"><link rel="prefetch" href="/Hikage/assets/index.html-u51qKXKB.js" as="script"><link rel="prefetch" href="/Hikage/assets/about.html-XwS73ZCx.js" as="script"><link rel="prefetch" href="/Hikage/assets/changelog.html-4cKSC36e.js" as="script"><link rel="prefetch" href="/Hikage/assets/contacts.html-ORTLlJQ8.js" as="script"><link rel="prefetch" href="/Hikage/assets/future.html-jTN_NVVj.js" as="script"><link rel="prefetch" href="/Hikage/assets/r8-proguard.html-e_rREoAD.js" as="script"><link rel="prefetch" href="/Hikage/assets/home.html-TsPnRHmC.js" as="script"><link rel="prefetch" href="/Hikage/assets/quick-start.html-3cWmD7u6.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-compiler.html-4m7cGYK8.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-core.html-2POUBcJE.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-extension-betterandroid.html-TeEkbGrP.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-extension-compose.html-y9fgAlkJ.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-extension.html-Wa92SmBq.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-widget-androidx.html-ZxjbyKwp.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-widget-material.html-aFxM7z7b.js" as="script"><link rel="prefetch" href="/Hikage/assets/about.html-ndlgo2Ul.js" as="script"><link rel="prefetch" href="/Hikage/assets/changelog.html-m9YESbx7.js" as="script"><link rel="prefetch" href="/Hikage/assets/contacts.html-X7jZzc8H.js" as="script"><link rel="prefetch" href="/Hikage/assets/future.html-BXK9B2jz.js" as="script"><link rel="prefetch" href="/Hikage/assets/r8-proguard.html-cESRxTSf.js" as="script"><link rel="prefetch" href="/Hikage/assets/home.html-yN_Nauvl.js" as="script"><link rel="prefetch" href="/Hikage/assets/quick-start.html-vLMpozQe.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-core.html--xfNkeP6.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-extension-betterandroid.html-07ZHN76T.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-extension-compose.html-2czu0HQ5.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-extension.html-O69pNHSL.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-widget-androidx.html-7nnQMKXC.js" as="script"><link rel="prefetch" href="/Hikage/assets/hikage-widget-material.html-OG3AXf8w.js" as="script"><link rel="prefetch" href="/Hikage/assets/404.html-wbLsHMMI.js" as="script">
|
|
</head>
|
|
<body>
|
|
<div id="app"><!--[--><div class="theme-container"><!--[--><header class="navbar"><div class="toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/Hikage/zh-cn/" class=""><img class="logo" src="/Hikage/images/logo.svg" alt="Hikage"><span class="site-name can-hide">Hikage</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="导航"><span class="title">导航</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="导航"><span class="title">导航</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>入门</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/guide/home.html" class="" aria-label="介绍"><!--[--><!--]--> 介绍 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/guide/quick-start.html" class="" aria-label="快速开始"><!--[--><!--]--> 快速开始 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>依赖</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/library/hikage-core.html" class="" aria-label="hikage-core"><!--[--><!--]--> hikage-core <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a aria-current="page" href="/Hikage/zh-cn/library/hikage-compiler.html" class="router-link-active router-link-exact-active router-link-active" aria-label="hikage-compiler"><!--[--><!--]--> hikage-compiler <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/library/hikage-extension.html" class="" aria-label="hikage-extension"><!--[--><!--]--> hikage-extension <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/library/hikage-extension-betterandroid.html" class="" aria-label="hikage-extension-betterandroid"><!--[--><!--]--> hikage-extension-betterandroid <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/library/hikage-extension-compose.html" class="" aria-label="hikage-extension-compose"><!--[--><!--]--> hikage-extension-compose <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/library/hikage-widget-androidx.html" class="" aria-label="hikage-widget-androidx"><!--[--><!--]--> hikage-widget-androidx <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/library/hikage-widget-material.html" class="" aria-label="hikage-widget-material"><!--[--><!--]--> hikage-widget-material <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>配置</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/config/r8-proguard.html" class="" aria-label="R8 与 Proguard 混淆"><!--[--><!--]--> R8 与 Proguard 混淆 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>关于</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/about/changelog.html" class="" aria-label="更新日志"><!--[--><!--]--> 更新日志 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/about/future.html" class="" aria-label="展望未来"><!--[--><!--]--> 展望未来 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/about/contacts.html" class="" aria-label="联系我们"><!--[--><!--]--> 联系我们 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/about/about.html" class="" aria-label="关于此文档"><!--[--><!--]--> 关于此文档 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><a href="/Hikage/zh-cn/about/contacts" class="" aria-label="联系我们"><!--[--><!--]--> 联系我们 <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Select language"><span class="title">简体中文 (CN)</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Select language"><span class="title">简体中文 (CN)</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a href="/Hikage/en/library/hikage-compiler.html" class="" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a aria-current="page" href="/Hikage/zh-cn/library/hikage-compiler.html" class="router-link-active router-link-exact-active router-link-active" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><a class="external-link" href="https://github.com/BetterAndroid/Hikage" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--> GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口中打开</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><button class="toggle-color-mode-button" title="切换颜色模式"><svg style="" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg style="display:none;" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><form class="search-box" role="search"><input type="search" placeholder="搜索" autocomplete="off" spellcheck="false" value><!----></form></div></header><!--]--><div class="sidebar-mask"></div><!--[--><aside class="sidebar"><nav class="navbar-items"><!--[--><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="导航"><span class="title">导航</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="导航"><span class="title">导航</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>入门</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/guide/home.html" class="" aria-label="介绍"><!--[--><!--]--> 介绍 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/guide/quick-start.html" class="" aria-label="快速开始"><!--[--><!--]--> 快速开始 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>依赖</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/library/hikage-core.html" class="" aria-label="hikage-core"><!--[--><!--]--> hikage-core <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a aria-current="page" href="/Hikage/zh-cn/library/hikage-compiler.html" class="router-link-active router-link-exact-active router-link-active" aria-label="hikage-compiler"><!--[--><!--]--> hikage-compiler <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/library/hikage-extension.html" class="" aria-label="hikage-extension"><!--[--><!--]--> hikage-extension <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/library/hikage-extension-betterandroid.html" class="" aria-label="hikage-extension-betterandroid"><!--[--><!--]--> hikage-extension-betterandroid <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/library/hikage-extension-compose.html" class="" aria-label="hikage-extension-compose"><!--[--><!--]--> hikage-extension-compose <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/library/hikage-widget-androidx.html" class="" aria-label="hikage-widget-androidx"><!--[--><!--]--> hikage-widget-androidx <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/library/hikage-widget-material.html" class="" aria-label="hikage-widget-material"><!--[--><!--]--> hikage-widget-material <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>配置</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/config/r8-proguard.html" class="" aria-label="R8 与 Proguard 混淆"><!--[--><!--]--> R8 与 Proguard 混淆 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>关于</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/about/changelog.html" class="" aria-label="更新日志"><!--[--><!--]--> 更新日志 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/about/future.html" class="" aria-label="展望未来"><!--[--><!--]--> 展望未来 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/about/contacts.html" class="" aria-label="联系我们"><!--[--><!--]--> 联系我们 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/zh-cn/about/about.html" class="" aria-label="关于此文档"><!--[--><!--]--> 关于此文档 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><a href="/Hikage/zh-cn/about/contacts" class="" aria-label="联系我们"><!--[--><!--]--> 联系我们 <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Select language"><span class="title">简体中文 (CN)</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Select language"><span class="title">简体中文 (CN)</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a href="/Hikage/en/library/hikage-compiler.html" class="" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a aria-current="page" href="/Hikage/zh-cn/library/hikage-compiler.html" class="router-link-active router-link-exact-active router-link-active" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><a class="external-link" href="https://github.com/BetterAndroid/Hikage" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--> GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口中打开</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><ul class="sidebar-items"><!--[--><li><p tabindex="0" class="sidebar-item sidebar-heading collapsible">入门 <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/Hikage/zh-cn/guide/home.html" class="sidebar-item" aria-label="介绍"><!--[--><!--]--> 介绍 <!--[--><!--]--></a><!----></li><li><a href="/Hikage/zh-cn/guide/quick-start.html" class="sidebar-item" aria-label="快速开始"><!--[--><!--]--> 快速开始 <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item sidebar-heading active collapsible">依赖 <span class="down arrow"></span></p><ul style="" class="sidebar-item-children"><!--[--><li><a href="/Hikage/zh-cn/library/hikage-core.html" class="sidebar-item" aria-label="hikage-core"><!--[--><!--]--> hikage-core <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/Hikage/zh-cn/library/hikage-compiler.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="hikage-compiler"><!--[--><!--]--> hikage-compiler <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/Hikage/zh-cn/library/hikage-compiler.html#配置依赖" class="router-link-active router-link-exact-active sidebar-item" aria-label="配置依赖"><!--[--><!--]--> 配置依赖 <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/Hikage/zh-cn/library/hikage-compiler.html#sweetdependency-推荐" class="router-link-active router-link-exact-active sidebar-item" aria-label="SweetDependency (推荐)"><!--[--><!--]--> SweetDependency (推荐) <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/Hikage/zh-cn/library/hikage-compiler.html#version-catalog" class="router-link-active router-link-exact-active sidebar-item" aria-label="Version Catalog"><!--[--><!--]--> Version Catalog <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/Hikage/zh-cn/library/hikage-compiler.html#传统方式" class="router-link-active router-link-exact-active sidebar-item" aria-label="传统方式"><!--[--><!--]--> 传统方式 <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a aria-current="page" href="/Hikage/zh-cn/library/hikage-compiler.html#功能介绍" class="router-link-active router-link-exact-active sidebar-item" aria-label="功能介绍"><!--[--><!--]--> 功能介绍 <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/Hikage/zh-cn/library/hikage-compiler.html#生成布局组件" class="router-link-active router-link-exact-active sidebar-item" aria-label="生成布局组件"><!--[--><!--]--> 生成布局组件 <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul></li><li><a href="/Hikage/zh-cn/library/hikage-extension.html" class="sidebar-item" aria-label="hikage-extension"><!--[--><!--]--> hikage-extension <!--[--><!--]--></a><!----></li><li><a href="/Hikage/zh-cn/library/hikage-extension-betterandroid.html" class="sidebar-item" aria-label="hikage-extension-betterandroid"><!--[--><!--]--> hikage-extension-betterandroid <!--[--><!--]--></a><!----></li><li><a href="/Hikage/zh-cn/library/hikage-extension-compose.html" class="sidebar-item" aria-label="hikage-extension-compose"><!--[--><!--]--> hikage-extension-compose <!--[--><!--]--></a><!----></li><li><a href="/Hikage/zh-cn/library/hikage-widget-androidx.html" class="sidebar-item" aria-label="hikage-widget-androidx"><!--[--><!--]--> hikage-widget-androidx <!--[--><!--]--></a><!----></li><li><a href="/Hikage/zh-cn/library/hikage-widget-material.html" class="sidebar-item" aria-label="hikage-widget-material"><!--[--><!--]--> hikage-widget-material <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item sidebar-heading collapsible">配置 <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/Hikage/zh-cn/config/r8-proguard.html" class="sidebar-item" aria-label="R8 与 Proguard 混淆"><!--[--><!--]--> R8 与 Proguard 混淆 <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item sidebar-heading collapsible">关于 <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/Hikage/zh-cn/about/changelog.html" class="sidebar-item" aria-label="更新日志"><!--[--><!--]--> 更新日志 <!--[--><!--]--></a><!----></li><li><a href="/Hikage/zh-cn/about/future.html" class="sidebar-item" aria-label="展望未来"><!--[--><!--]--> 展望未来 <!--[--><!--]--></a><!----></li><li><a href="/Hikage/zh-cn/about/contacts.html" class="sidebar-item" aria-label="联系我们"><!--[--><!--]--> 联系我们 <!--[--><!--]--></a><!----></li><li><a href="/Hikage/zh-cn/about/about.html" class="sidebar-item" aria-label="关于此文档"><!--[--><!--]--> 关于此文档 <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul><!--[--><!--]--></aside><!--]--><!--[--><main class="page"><!--[--><!--]--><div class="theme-default-content"><!--[--><!--]--><div><h1 id="hikage-compiler" tabindex="-1"><a class="header-anchor" href="#hikage-compiler" aria-hidden="true">#</a> hikage-compiler</h1><p><img src="https://img.shields.io/maven-central/v/com.highcapable.hikage/hikage-compiler?logo=apachemaven&logoColor=orange&style=flat-square" alt="Maven Central"><span style="margin-left:5px;"></span><img src="https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fraw.githubusercontent.com%2FHighCapable%2Fmaven-repository%2Frefs%2Fheads%2Fmain%2Frepository%2Freleases%2Fcom%2Fhighcapable%2Fhikage%2Fhikage-compiler%2Fmaven-metadata.xml&logo=apachemaven&logoColor=orange&label=highcapable-maven-releases&style=flat-square" alt="Maven metadata URL"><span style="margin-left:5px;"></span><img src="https://img.shields.io/badge/Min SDK-21-orange?logo=android&style=flat-square" alt="Android Min SDK"></p><p>这是 Hikage 的自动化编译模块。</p><h2 id="配置依赖" tabindex="-1"><a class="header-anchor" href="#配置依赖" aria-hidden="true">#</a> 配置依赖</h2><p>你可以使用如下方式将此模块添加到你的项目中。</p><div class="custom-container warning"><p class="custom-container-title">注意</p><p>你需要在你的项目中集成适合于你项目当前 Kotlin 版本的 <a href="https://github.com/google/ksp/releases" target="_blank" rel="noopener noreferrer">Google KSP<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口中打开</span></span></a> 插件。</p></div><h3 id="sweetdependency-推荐" tabindex="-1"><a class="header-anchor" href="#sweetdependency-推荐" aria-hidden="true">#</a> SweetDependency (推荐)</h3><p>在你的项目 <code>SweetDependency</code> 配置文件中添加依赖。</p><div class="language-yaml line-numbers-mode" data-ext="yml"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#8DDB8C;">plugins</span><span style="color:#ADBAC7;">:</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#8DDB8C;">com.google.devtools.ksp</span><span style="color:#ADBAC7;">:</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#8DDB8C;">version</span><span style="color:#ADBAC7;">: </span><span style="color:#96D0FF;">+</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#8DDB8C;">libraries</span><span style="color:#ADBAC7;">:</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#8DDB8C;">com.highcapable.hikage</span><span style="color:#ADBAC7;">:</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#8DDB8C;">hikage-compiler</span><span style="color:#ADBAC7;">:</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#8DDB8C;">version</span><span style="color:#ADBAC7;">: </span><span style="color:#96D0FF;">+</span></span>
|
|
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>在你的根项目 <code>build.gradle.kts</code> 中配置依赖。</p><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">plugins</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// ...</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">autowire</span><span style="color:#ADBAC7;">(libs.plugins.com.google.devtools.ksp) apply </span><span style="color:#6CB6FF;">false</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
|
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>在你的项目 <code>build.gradle.kts</code> 中配置依赖。</p><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">plugins</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// ...</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">autowire</span><span style="color:#ADBAC7;">(libs.plugins.com.google.devtools.ksp)</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#DCBDFB;">dependencies</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// ...</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">ksp</span><span style="color:#ADBAC7;">(com.highcapable.hikage.hikage.compiler)</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
|
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="version-catalog" tabindex="-1"><a class="header-anchor" href="#version-catalog" aria-hidden="true">#</a> Version Catalog</h3><p>在你的项目 <code>gradle/libs.versions.toml</code> 中添加依赖。</p><div class="language-toml line-numbers-mode" data-ext="toml"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#ADBAC7;">[</span><span style="color:#F69D50;">versions</span><span style="color:#ADBAC7;">]</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">ksp = </span><span style="color:#96D0FF;">"<ksp-version>"</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">hikage-compiler = </span><span style="color:#96D0FF;">"<version>"</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;">[</span><span style="color:#F69D50;">plugins</span><span style="color:#ADBAC7;">]</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">ksp = { id = </span><span style="color:#96D0FF;">"com.google.devtools.ksp"</span><span style="color:#ADBAC7;">, version.ref = </span><span style="color:#96D0FF;">"ksp"</span><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#ADBAC7;">[</span><span style="color:#F69D50;">libraries</span><span style="color:#ADBAC7;">]</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">hikage-compiler = { module = </span><span style="color:#96D0FF;">"com.highcapable.hikage:hikage-compiler"</span><span style="color:#ADBAC7;">, version.ref = </span><span style="color:#96D0FF;">"hikage-compiler"</span><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>在你的根项目 <code>build.gradle.kts</code> 中配置依赖。</p><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">plugins</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// ...</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">alias</span><span style="color:#ADBAC7;">(libs.plugins.ksp) apply </span><span style="color:#6CB6FF;">false</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
|
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>在你的项目 <code>build.gradle.kts</code> 中配置依赖。</p><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">plugins</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// ...</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">alias</span><span style="color:#ADBAC7;">(libs.plugins.ksp)</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#DCBDFB;">dependencies</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// ...</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">ksp</span><span style="color:#ADBAC7;">(libs.hikage.compiler)</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
|
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>请将 <code><version></code> 修改为此文档顶部显示的版本,并将 <code><ksp-version></code> 修改为你项目当前使用的 Kotlin 版本对应的 KSP 版本。</p><h3 id="传统方式" tabindex="-1"><a class="header-anchor" href="#传统方式" aria-hidden="true">#</a> 传统方式</h3><p>在你的根项目 <code>build.gradle.kts</code> 中配置依赖。</p><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">plugins</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// ...</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">id</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"com.google.devtools.ksp"</span><span style="color:#ADBAC7;">) version </span><span style="color:#96D0FF;">"<ksp-version>"</span><span style="color:#ADBAC7;"> apply </span><span style="color:#6CB6FF;">false</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
|
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>在你的项目 <code>build.gradle.kts</code> 中配置依赖。</p><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">plugins</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// ...</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">id</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"com.google.devtools.ksp"</span><span style="color:#ADBAC7;">)</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
|
<span class="line"></span>
|
|
<span class="line"><span style="color:#DCBDFB;">dependencies</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// ...</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">ksp</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"com.highcapable.hikage:hikage-compiler:<version>"</span><span style="color:#ADBAC7;">)</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
|
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>请将 <code><version></code> 修改为此文档顶部显示的版本,并将 <code><ksp-version></code> 修改为你项目当前使用的 Kotlin 版本对应的 KSP 版本。</p><h2 id="功能介绍" tabindex="-1"><a class="header-anchor" href="#功能介绍" aria-hidden="true">#</a> 功能介绍</h2><p>Hikage 的编译模块将在运行时自动生成代码,在更新后,请重新运行 <code>assembleDebug</code> 或 <code>assembleRelease</code> Task 以生成最新的代码。</p><h3 id="生成布局组件" tabindex="-1"><a class="header-anchor" href="#生成布局组件" aria-hidden="true">#</a> 生成布局组件</h3><p>Hikage 可以在编译时为指定的布局组件自动生成布局组件对应的 <code>Hikageable</code> 函数。</p><h4 id="自定义-view" tabindex="-1"><a class="header-anchor" href="#自定义-view" aria-hidden="true">#</a> 自定义 View</h4><p>你可以在你的自定义 <code>View</code> 上加入 <code>HikageView</code> 注解,以标记它生成为 Hikage 布局组件。</p><table><thead><tr><th>参数名称</th><th>描述</th></tr></thead><tbody><tr><td><code>lparams</code></td><td>布局参数 <code>ViewGroup.LayoutParams</code> Class 对象,如果你的自定义 <code>View</code> 是 <code>ViewGroup</code> 的子类,则可以声明或留空使用默认值</td></tr><tr><td><code>alias</code></td><td>布局组件的别名,即要生成的函数名称,默认获取当前 Class 的名称</td></tr><tr><td><code>requireInit</code></td><td>是否要求填写布局的初始化方法块,默认为可省略的参数</td></tr><tr><td><code>requirePerformer</code></td><td>是否要求填写布局的 <code>performer</code> 方法块,默认为可省略的参数,仅在你的自定义 <code>View</code> 是 <code>ViewGroup</code> 的子类时生效</td></tr><tr><td><code>final</code></td><td>是否将布局声明为 “最终布局”,默认否,即此布局是否是 <code>ViewGroup</code> 还是从其继承都将不会生成 <code>performer</code> 方法块,设置为 <code>true</code> 之后,<code>lparams</code> 和 <code>requirePerformer</code> 将不再有效。</td></tr></tbody></table><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F69D50;">@HikageView</span><span style="color:#ADBAC7;">(lparams </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> LinearLayout.LayoutParams::</span><span style="color:#DCBDFB;">class</span><span style="color:#ADBAC7;">)</span></span>
|
|
<span class="line"><span style="color:#F47067;">class</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">MyLayout</span><span style="color:#ADBAC7;">(context: </span><span style="color:#F69D50;">Context</span><span style="color:#ADBAC7;">, attrs: </span><span style="color:#F69D50;">AttributeSet</span><span style="color:#ADBAC7;">? </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">null</span><span style="color:#ADBAC7;">) : </span><span style="color:#F69D50;">LinearLayout</span><span style="color:#ADBAC7;">(</span><span style="color:#F69D50;">context</span><span style="color:#ADBAC7;">, </span><span style="color:#F69D50;">attrs</span><span style="color:#ADBAC7;">) {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// ...</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
|
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>编译后,你就可以在 Hikage 布局中使用 <code>MyLayout</code> 作为布局组件了。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">Hikageable</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">MyLayout</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">TextView</span><span style="color:#ADBAC7;">(</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> lparams </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">LayoutParams</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> topMargin </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">16</span><span style="color:#ADBAC7;">.dp</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> ) {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> text </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"Hello, World!"</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
|
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="第三方组件" tabindex="-1"><a class="header-anchor" href="#第三方组件" aria-hidden="true">#</a> 第三方组件</h4><p>Hikage 同样可以为第三方提供的 <code>View</code> 组件自动生成布局组件函数,你可以使用 <code>HikageViewDeclaration</code> 注解来完成。</p><table><thead><tr><th>参数名称</th><th>描述</th></tr></thead><tbody><tr><td><code>view</code></td><td>需要声明的布局组件的 Class 对象</td></tr><tr><td><code>lparams</code></td><td>布局参数 <code>ViewGroup.LayoutParams</code> Class 对象,如果你的自定义 <code>View</code> 是 <code>ViewGroup</code> 的子类,则可以声明或留空使用默认值</td></tr><tr><td><code>alias</code></td><td>布局组件的别名,即要生成的函数名称,默认获取 <code>view</code> Class 的名称</td></tr><tr><td><code>requireInit</code></td><td>是否要求填写布局的初始化方法块,默认为可省略的参数</td></tr><tr><td><code>requirePerformer</code></td><td>是否要求填写布局的 <code>performer</code> 方法块,默认为可省略的参数,仅在你的自定义 <code>View</code> 是 <code>ViewGroup</code> 的子类时生效</td></tr><tr><td><code>final</code></td><td>是否将布局声明为 “最终布局”,默认否,即此布局是否是 <code>ViewGroup</code> 还是从其继承都将不会生成 <code>performer</code> 方法块,设置为 <code>true</code> 之后,<code>lparams</code> 和 <code>requirePerformer</code> 将不再有效。</td></tr></tbody></table><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F69D50;">@HikageViewDeclaration</span><span style="color:#ADBAC7;">(ThirdPartyView::</span><span style="color:#DCBDFB;">class</span><span style="color:#ADBAC7;">)</span></span>
|
|
<span class="line"><span style="color:#F47067;">object</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">ThirdPartyViewDeclaration</span></span>
|
|
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p>这个注解可以声明到任意一个 <code>object</code> 类上,仅作为注解扫描器需要自动纳入的类来使用,你可以将可见性设为 <code>private</code>,但要确保被注解的类一定是使用 <code>object</code> 修饰的。</p><p>同样地,编译后,你就可以在 Hikage 布局中使用 <code>ThirdPartyView</code> 作为布局组件了。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">Hikageable</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">ThirdPartyView</span><span style="color:#ADBAC7;"> {</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// ...</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
|
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
|
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="custom-container tip"><p class="custom-container-title">小提示</p><p>Hikage 生成布局组件的函数包名路径为 <code>com.highcapable.hikage.widget</code> + 你的 <code>View</code> 或第三方 <code>View</code> 组件的完整包名。</p></div></div><!--[--><!--]--></div><footer class="page-meta"><div class="meta-item edit-link"><a class="external-link meta-item-label" href="https://github.com/BetterAndroid/Hikage/edit/main/docs-source/src/zh-cn/library/hikage-compiler.md" rel="noopener noreferrer" target="_blank" aria-label="在 GitHub 上编辑此页"><!--[--><!--]--> 在 GitHub 上编辑此页 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口中打开</span></span><!--[--><!--]--></a></div><div class="meta-item last-updated"><span class="meta-item-label">上次更新: </span><!----></div><div class="meta-item contributors"><span class="meta-item-label">贡献者: </span><span class="meta-item-info"><!--[--><!--[--><span class="contributor" title="email: qzmmcn@163.com">fankesyooni</span><!----><!--]--><!--]--></span></div></footer><nav class="page-nav"><p class="inner"><span class="prev"><a href="/Hikage/zh-cn/library/hikage-core.html" class="" aria-label="hikage-core"><!--[--><!--]--> hikage-core <!--[--><!--]--></a></span><span class="next"><a href="/Hikage/zh-cn/library/hikage-extension.html" class="" aria-label="hikage-extension"><!--[--><!--]--> hikage-extension <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
|
|
<script type="module" src="/Hikage/assets/app-ZnF1aHNS.js" defer></script>
|
|
</body>
|
|
</html>
|