例如,我想拥有一个TabPane,但我想在各自的类中分别拥有一个标签。有没有办法使建造者能做到这一点?我想做这样的事情:
tabpane {
MyFirstTab()
MySecondTab()
etc.
}
Run Code Online (Sandbox Code Playgroud)
通常,您可以View使用以下add命令从另一个节点添加根节点:
add(SomeView::class)
Run Code Online (Sandbox Code Playgroud)
您还可以注入View并添加:
val someView: SomeView by inject()
override val root: borderpane {
center {
add(someView)
}
}
Run Code Online (Sandbox Code Playgroud)
add和做一样this += someView。这里发生的是框架找到root视图的节点并将其附加到children父节点的属性。它还了解诸如的特殊容器BorderPane,因此当您在容器中添加内容时,它做对了center构建器中。
该TabPane然而,需要Tab的情况下,这是不是节点。您需要使用tab构建器添加选项卡并为其分配一些内容。建设者足够聪明,足以理解,如果您add在选项卡中进行操作,则应将其分配给content选项卡的属性。因此,您可以编写:
tab("My First Tab") {
add(MyFirstTab::class)
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您已经拥有要分配的内容的实例:
tab("My First Tab") {
add(myFirstTab)
}
Run Code Online (Sandbox Code Playgroud)
的MyFirstTab类必须是一个View或Fragment。
| 归档时间: |
|
| 查看次数: |
285 次 |
| 最近记录: |