一个基于 Jetpack Compose for Desktop 的二次封装,旨在进一步简化 Compose 开发,并加入更多功能。
导入依赖
repositories {
mavenCentral()
}
dependencies {
implementation("io.github.sgpublic:AdvComposeDesktop:latest")
}
简单的一句代码即可完成 AdvComposeDesktop 启动:
fun main(args: Array<String>) {
AdvComposeApplication.start(args)
}
启动参数传入--debug
可开启调试模式。
新建类使其继承自 SampleComposeWindow
class HelloWorldWindow: SampleComposeWindow() {
@Composable
override fun compose(){
Text("Hello World!")
}
}
或者指定自定义 Prop
class HelloWorldWindow: ComposeWindow<HelloWorldWindowProp>() {
@Composable
override fun compose(){
Button(onClick = {
prop.text = "Hello AdvComposeDesktop!"
}) {
Text(prop.text)
}
}
}
class HelloWorldWindowProp: WindowProp() {
var text: String by mutableStateOf("Hello World!")
}
指定 MainWindow,即启动时打开的 Window,仅需要在 class 上添加 @MainWindow
注解即可。
注意:您的程序必须有一个 @MainWindow!
@MainWindow
class HelloWorldWindow: SampleComposeWindow() {
@Composable
override fun compose(){
Text("Hello World!")
}
}
新建类使其继承自 SampleComposeComponent
class MyComponent: SampleComposeComponent() {
@Composable
override fun compose(){
Text("Hello World!")
}
}
或者指定自定义 Prop
class MyComponent: ComposeComponent<MyComponentProp>() {
@Composable
override fun compose(){
Button(onClick = {
prop.text = "Hello ComposeComponent!"
}) {
Text(prop.text)
}
}
}
class MyComponentProp: ComponentProp() {
var text: String by mutableStateOf("Hello World!")
}
最后在 Window 中使用
class HelloWorldWindow: SampleComposeWindow() {
@Composable
override fun compose(){
includeComponent(MyComponent::class)
}
}