mirror of
https://github.com/BetterAndroid/Hikage.git
synced 2025-09-09 20:14:13 +08:00
113 lines
51 KiB
HTML
113 lines
51 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en-US">
|
|
<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="An Android responsive UI building tool">
|
|
<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-4m7cGYK8.js"><link rel="modulepreload" href="/Hikage/assets/hikage-compiler.html-OOEYxzA1.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-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-compiler.html-_B_hgKuq.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-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-compiler.html-1bP0HyAG.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/en/" 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="Navigation"><span class="title">Navigation</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Navigation"><span class="title">Navigation</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>Get Started</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Hikage/en/guide/home.html" class="" aria-label="Introduction"><!--[--><!--]--> Introduction <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/en/guide/quick-start.html" class="" aria-label="Quick Start"><!--[--><!--]--> Quick Start <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Libraries</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Hikage/en/library/hikage-core.html" class="" aria-label="hikage-core"><!--[--><!--]--> hikage-core <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a aria-current="page" href="/Hikage/en/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/en/library/hikage-extension.html" class="" aria-label="hikage-extension"><!--[--><!--]--> hikage-extension <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/en/library/hikage-extension-betterandroid.html" class="" aria-label="hikage-extension-betterandroid"><!--[--><!--]--> hikage-extension-betterandroid <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/en/library/hikage-extension-compose.html" class="" aria-label="hikage-extension-compose"><!--[--><!--]--> hikage-extension-compose <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/en/library/hikage-widget-androidx.html" class="" aria-label="hikage-widget-androidx"><!--[--><!--]--> hikage-widget-androidx <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/en/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>Configs</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Hikage/en/config/r8-proguard.html" class="" aria-label="R8 & Proguard Obfuscation"><!--[--><!--]--> R8 & Proguard Obfuscation <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>About</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Hikage/en/about/changelog.html" class="" aria-label="Changelog"><!--[--><!--]--> Changelog <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/en/about/future.html" class="" aria-label="Looking Toward the Future"><!--[--><!--]--> Looking Toward the Future <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/en/about/contacts.html" class="" aria-label="Contact Us"><!--[--><!--]--> Contact Us <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/en/about/about.html" class="" aria-label="About This Document"><!--[--><!--]--> About This Document <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><a href="/Hikage/en/about/contacts" class="" aria-label="Contact Us"><!--[--><!--]--> Contact Us <!--[--><!--]--></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">English (US)</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Select language"><span class="title">English (US)</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a aria-current="page" href="/Hikage/en/library/hikage-compiler.html" class="router-link-active router-link-exact-active router-link-active" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/Hikage/zh-cn/library/hikage-compiler.html" class="" 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">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><button class="toggle-color-mode-button" title="toggle color mode"><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="Search" 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="Navigation"><span class="title">Navigation</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Navigation"><span class="title">Navigation</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>Get Started</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Hikage/en/guide/home.html" class="" aria-label="Introduction"><!--[--><!--]--> Introduction <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/en/guide/quick-start.html" class="" aria-label="Quick Start"><!--[--><!--]--> Quick Start <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Libraries</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Hikage/en/library/hikage-core.html" class="" aria-label="hikage-core"><!--[--><!--]--> hikage-core <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a aria-current="page" href="/Hikage/en/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/en/library/hikage-extension.html" class="" aria-label="hikage-extension"><!--[--><!--]--> hikage-extension <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/en/library/hikage-extension-betterandroid.html" class="" aria-label="hikage-extension-betterandroid"><!--[--><!--]--> hikage-extension-betterandroid <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/en/library/hikage-extension-compose.html" class="" aria-label="hikage-extension-compose"><!--[--><!--]--> hikage-extension-compose <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/en/library/hikage-widget-androidx.html" class="" aria-label="hikage-widget-androidx"><!--[--><!--]--> hikage-widget-androidx <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/en/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>Configs</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Hikage/en/config/r8-proguard.html" class="" aria-label="R8 & Proguard Obfuscation"><!--[--><!--]--> R8 & Proguard Obfuscation <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>About</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/Hikage/en/about/changelog.html" class="" aria-label="Changelog"><!--[--><!--]--> Changelog <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/en/about/future.html" class="" aria-label="Looking Toward the Future"><!--[--><!--]--> Looking Toward the Future <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/en/about/contacts.html" class="" aria-label="Contact Us"><!--[--><!--]--> Contact Us <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/Hikage/en/about/about.html" class="" aria-label="About This Document"><!--[--><!--]--> About This Document <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><a href="/Hikage/en/about/contacts" class="" aria-label="Contact Us"><!--[--><!--]--> Contact Us <!--[--><!--]--></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">English (US)</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Select language"><span class="title">English (US)</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a aria-current="page" href="/Hikage/en/library/hikage-compiler.html" class="router-link-active router-link-exact-active router-link-active" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/Hikage/zh-cn/library/hikage-compiler.html" class="" 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">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><ul class="sidebar-items"><!--[--><li><p tabindex="0" class="sidebar-item sidebar-heading collapsible">Get Started <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/Hikage/en/guide/home.html" class="sidebar-item" aria-label="Introduction"><!--[--><!--]--> Introduction <!--[--><!--]--></a><!----></li><li><a href="/Hikage/en/guide/quick-start.html" class="sidebar-item" aria-label="Quick Start"><!--[--><!--]--> Quick Start <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item sidebar-heading active collapsible">Libraries <span class="down arrow"></span></p><ul style="" class="sidebar-item-children"><!--[--><li><a href="/Hikage/en/library/hikage-core.html" class="sidebar-item" aria-label="hikage-core"><!--[--><!--]--> hikage-core <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/Hikage/en/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/en/library/hikage-compiler.html#configure-dependency" class="router-link-active router-link-exact-active sidebar-item" aria-label="Configure Dependency"><!--[--><!--]--> Configure Dependency <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/Hikage/en/library/hikage-compiler.html#sweetdependency-recommended" class="router-link-active router-link-exact-active sidebar-item" aria-label="SweetDependency (Recommended)"><!--[--><!--]--> SweetDependency (Recommended) <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/Hikage/en/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/en/library/hikage-compiler.html#traditional-method" class="router-link-active router-link-exact-active sidebar-item" aria-label="Traditional Method"><!--[--><!--]--> Traditional Method <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a aria-current="page" href="/Hikage/en/library/hikage-compiler.html#function-introduction" class="router-link-active router-link-exact-active sidebar-item" aria-label="Function Introduction"><!--[--><!--]--> Function Introduction <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/Hikage/en/library/hikage-compiler.html#generate-layout-components" class="router-link-active router-link-exact-active sidebar-item" aria-label="Generate Layout Components"><!--[--><!--]--> Generate Layout Components <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul></li><li><a href="/Hikage/en/library/hikage-extension.html" class="sidebar-item" aria-label="hikage-extension"><!--[--><!--]--> hikage-extension <!--[--><!--]--></a><!----></li><li><a href="/Hikage/en/library/hikage-extension-betterandroid.html" class="sidebar-item" aria-label="hikage-extension-betterandroid"><!--[--><!--]--> hikage-extension-betterandroid <!--[--><!--]--></a><!----></li><li><a href="/Hikage/en/library/hikage-extension-compose.html" class="sidebar-item" aria-label="hikage-extension-compose"><!--[--><!--]--> hikage-extension-compose <!--[--><!--]--></a><!----></li><li><a href="/Hikage/en/library/hikage-widget-androidx.html" class="sidebar-item" aria-label="hikage-widget-androidx"><!--[--><!--]--> hikage-widget-androidx <!--[--><!--]--></a><!----></li><li><a href="/Hikage/en/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">Configs <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/Hikage/en/config/r8-proguard.html" class="sidebar-item" aria-label="R8 & Proguard Obfuscation"><!--[--><!--]--> R8 & Proguard Obfuscation <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item sidebar-heading collapsible">About <span class="right arrow"></span></p><ul style="display:none;" class="sidebar-item-children"><!--[--><li><a href="/Hikage/en/about/changelog.html" class="sidebar-item" aria-label="Changelog"><!--[--><!--]--> Changelog <!--[--><!--]--></a><!----></li><li><a href="/Hikage/en/about/future.html" class="sidebar-item" aria-label="Looking Toward the Future"><!--[--><!--]--> Looking Toward the Future <!--[--><!--]--></a><!----></li><li><a href="/Hikage/en/about/contacts.html" class="sidebar-item" aria-label="Contact Us"><!--[--><!--]--> Contact Us <!--[--><!--]--></a><!----></li><li><a href="/Hikage/en/about/about.html" class="sidebar-item" aria-label="About This Document"><!--[--><!--]--> About This Document <!--[--><!--]--></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>This is a Hikage automatic compilation module.</p><h2 id="configure-dependency" tabindex="-1"><a class="header-anchor" href="#configure-dependency" aria-hidden="true">#</a> Configure Dependency</h2><p>You can add this module to your project using the following method.</p><div class="custom-container warning"><p class="custom-container-title">Notice</p><p>You need to integrate the <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">open in new window</span></span></a> plugin in your project that is suitable for the current Kotlin version of your project.</p></div><h3 id="sweetdependency-recommended" tabindex="-1"><a class="header-anchor" href="#sweetdependency-recommended" aria-hidden="true">#</a> SweetDependency (Recommended)</h3><p>Add dependency in your project's <code>SweetDependency</code> configuration file.</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>Configure dependency in your root project's <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>Configure dependency in your project's <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>Add dependency in your project's <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>Configure dependency in your root project's <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>Configure dependency in your project's <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>Please change <code><version></code> to the version displayed at the top of this document, and change <code><ksp-version></code> to the KSP version corresponding to the Kotlin version currently used by your project.</p><h3 id="traditional-method" tabindex="-1"><a class="header-anchor" href="#traditional-method" aria-hidden="true">#</a> Traditional Method</h3><p>Configure dependency in your root project <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>Configure dependency in your project's <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>Please change <code><version></code> to the version displayed at the top of this document, and change <code><ksp-version></code> to the KSP version corresponding to the Kotlin version currently used by your project.</p><h2 id="function-introduction" tabindex="-1"><a class="header-anchor" href="#function-introduction" aria-hidden="true">#</a> Function Introduction</h2><p>Hikage's compilation module will automatically generate code at runtime. After update, please re-run the <code>assembleDebug</code> or <code>assembleRelease</code> task to generate the latest code.</p><h3 id="generate-layout-components" tabindex="-1"><a class="header-anchor" href="#generate-layout-components" aria-hidden="true">#</a> Generate Layout Components</h3><p>Hikage can automatically generate the <code>Hikageable</code> function corresponding to the layout component for the specified layout component at compile time.</p><h4 id="custom-view" tabindex="-1"><a class="header-anchor" href="#custom-view" aria-hidden="true">#</a> Custom View</h4><p>You can add the <code>HikageView</code> annotation on your custom <code>View</code> to mark it as a Hikage layout component.</p><table><thead><tr><th>Parameter Name</th><th>Description</th></tr></thead><tbody><tr><td><code>lparams</code></td><td>LayoutParams <code>Class</code> object, if your custom <code>View</code> is a subclass of <code>ViewGroup</code>, you can declare or leave it blank to use the default value</td></tr><tr><td><code>alias</code></td><td>The alias of the layout component, that is, the function name to be generated, gets the name of the current Class by default</td></tr><tr><td><code>requireInit</code></td><td>Whether to fill in the initialization method block of the layout, the default is the omitted parameters</td></tr><tr><td><code>requirePerformer</code></td><td>Whether to fill in the <code>performer</code> method block of the layout, the default is an omitted parameter, which only takes effect when your custom <code>View</code> is a subclass of <code>ViewGroup</code></td></tr><tr><td><code>final</code></td><td>Whether to declare the layout as "final layout", the default is false, that is, whether this layout is <code>ViewGroup</code> or its subclasses will not generate the <code>performer</code> method block. After set to <code>true</code>, <code>lparams</code> and <code>requirePerformer</code> will no longer be valid.</td></tr></tbody></table><blockquote><p>The following example</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>Once compiled, you can use <code>MyLayout</code> as the layout component in the Hikage layout.</p><blockquote><p>The following example</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="third-party-components" tabindex="-1"><a class="header-anchor" href="#third-party-components" aria-hidden="true">#</a> Third-party Components</h4><p>Hikage can also automatically generate layout component functions for the <code>View</code> component provided by third parties, and you can use the <code>HikageViewDeclaration</code> annotation to complete it.</p><table><thead><tr><th>Parameter Name</th><th>Description</th></tr></thead><tbody><tr><td><code>view</code></td><td>Class object of layout component that needs to be declared</td></tr><tr><td><code>lparams</code></td><td>LayoutParams <code>Class</code> object, if your custom <code>View</code> is a subclass of <code>ViewGroup</code>, you can declare or leave it blank to use the default value</td></tr><tr><td><code>alias</code></td><td>The alias of the layout component, that is, the name of the function to be generated, obtains the name of the <code>view</code> Class by default</td></tr><tr><td><code>requireInit</code></td><td>Whether to fill in the initialization method block of the layout, the default is the omitted parameters</td></tr><tr><td><code>requirePerformer</code></td><td>Whether to fill in the <code>performer</code> method block of the layout, the default is an omitted parameter, which only takes effect when your custom <code>View</code> is a subclass of <code>ViewGroup</code></td></tr><tr><td><code>final</code></td><td>Whether to declare the layout as "final layout", the default is false, that is, whether this layout is <code>ViewGroup</code> or its subclasses will not generate the <code>performer</code> method block. After set to <code>true</code>, <code>lparams</code> and <code>requirePerformer</code> will no longer be valid.</td></tr></tbody></table><blockquote><p>The following example</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>This annotation can be declared on any <code>object</code> class and is only used as a class that needs to be automatically included by the annotation scanner. You can set visibility to <code>private</code>, but make sure that the annotated class must be modified with <code>object</code>.</p><p>Similarly, after compilation, you can use <code>ThirdPartyView</code> as the layout component in the Hikage layout.</p><blockquote><p>The following example</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">Tips</p><p>Hikage The function package name path for generating layout components is <code>com.highcapable.hikage.widget</code> + the full package name of your <code>View</code> or third-party <code>View</code> component.</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/en/library/hikage-compiler.md" rel="noopener noreferrer" target="_blank" aria-label="Edit this page on GitHub"><!--[--><!--]--> Edit this page on 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">open in new window</span></span><!--[--><!--]--></a></div><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><div class="meta-item contributors"><span class="meta-item-label">Contributors: </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/en/library/hikage-core.html" class="" aria-label="hikage-core"><!--[--><!--]--> hikage-core <!--[--><!--]--></a></span><span class="next"><a href="/Hikage/en/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>
|