/** * 第 2 章配套代码 · 模板生成的 HomePage(带详细注释版) * * 文件位置:shared/src/commonMain/kotlin/com/example/kuikly/pages/HomePage.kt * * 这是 `kuikly create` 模板自动生成的 HomePage,本文件加了大量注释帮助理解。 * * ⚠ commonMain 里不能 import 任何 android.* 或 ios 的类! * 所有平台无关的 Kotlin 标准库 + Kuikly 框架是允许的。 */ package com.example.kuikly.pages import com.tencent.kuikly.core.annotations.Page import com.tencent.kuikly.core.base.Color import com.tencent.kuikly.core.base.ViewBuilder import com.tencent.kuikly.core.pager.Pager import com.tencent.kuikly.core.views.Text // ─────────────────────────────────────────────────────── // @Page 注解的两个常用参数: // name 页面路由名(必填) // supportInLocal 是否注册到本地路由表(默认 true) // ─────────────────────────────────────────────────────── @Page("HomePage") internal class HomePage : Pager() { /** * body() 是 Pager 必须实现的方法。 * * 返回值是 ViewBuilder(其实就是 () -> Unit 类型的别名), * Kuikly 引擎会执行这个闭包,把里面的组件描述转成 BuildTree。 */ override fun body(): ViewBuilder { return { // ───────────────────────────────────── // attr {} 块:根容器的样式 + 布局属性 // allCenter() 所有子组件居中(水平 + 垂直) // backgroundColor(...) 背景色 // // 注意:Kuikly 颜色是 Long 类型(注意末尾的 L 不能丢), // 格式是 0xAARRGGBBL(前 2 位是透明度,后 6 位是 RGB) // ───────────────────────────────────── attr { allCenter() backgroundColor(Color.WHITE) } // ───────────────────────────────────── // Text 组件:纯文本显示 // text(...) 文字内容 // fontSize(20f) 字号(注意是 Float,要带 f) // fontWeightBold() 粗体(Kuikly 用方法形式而不是属性赋值) // color(...) 文字颜色 // ───────────────────────────────────── Text { attr { text("Hello Kuikly!") fontSize(20f) fontWeightBold() color(Color(0xFF7F52FFL)) // Kotlin 紫 } } } } }