我正在为基于的应用程序开发 UI 布局为桌面撰写 https://www.jetbrains.com/lp/compose-mpp/
它由几个复选框组成。
但里面没有任何功能为桌面撰写 https://github.com/JetBrains/compose-jb/tree/master/tutorials/Getting_Started使视图彼此对齐。
在Android中,我们可以使用Constraint Layout
用于视图对齐,非常简单。
但是 Compose for Desktop 该怎么办呢?
这是我需要在 Desktop Compose 中设计的布局
这是我写的代码Main.kt
文件:
但输出却截然不同。
由于没有 Compose For Desktop Layout Alignment and Sizing 的官方文档/视频,请您指导一下吗?
@Composable
@Preview
fun App() {
MaterialTheme(
) {
BoxWithConstraints {
TwoColumnsLayout()
}
}
}
@Composable
fun TwoColumnsLayout() {
Row(Modifier.fillMaxSize()) {
Box(modifier = Modifier.fillMaxWidth(0.4f), contentAlignment = Alignment.Center) {
LeftPaneContent()
Divider(
color = Color.Blue,
modifier = Modifier
.fillMaxHeight()
.width(1.dp)
)
}
RightPaneContent()
}
}
@Composable
fun LeftPaneContent() {
Column(
Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(text = "Left Pane First Text Box")
Text(text = "Left Pane Second Text Box")
Column {
Text(text = "Left Pane Radio button Box ", modifier = Modifier.padding(start = 8.dp))
val options = listOf("Option 1", "Option 2", "Option 3", "Option 4", "Option 5")
}
Text(text = "Left Pane bottom Text Box")
}
}
@Composable
fun RightPaneContent() {
Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
Column(
Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(text = "Right Pane First Text Box")
Text(text = "Right Pane Second Text Box")
Text(text = "Right Pane Third Text Box")
}
}
}
fun main() = application {
Window(
onCloseRequest = ::exitApplication,
state = WindowState(size = DpSize(1440.dp, 768.dp))
) {
App()
}
}
我不需要完整的代码。
我只需要根据上述设计进行视图放置、对齐和调整大小方面的帮助。
我无法创建如上图所示的 UI 布局,而且也没有有关 Compose For Desktop UI 布局的文档。