【发布时间】:2022-07-22 17:09:30
【问题描述】:
我在阅读撰写桌面的教程时遇到了问题。
关于撰写桌面的基础知识,我有两个问题。
首先,有没有办法为整个窗口添加高度?
二、有没有办法设置窗口的最小尺寸? 当我单击窗口的边缘时,即使没有显示任何箭头,也可以调整窗口的大小,但我找不到在其最小尺寸上添加约束的方法。它会一直闪烁直到消失。
我当前的预览是这样的。
我的代码如下所示。
fun main() = application {
val windowState = rememberWindowState()
windowState.size = WindowSize(392.dp, 642.dp)
var isVisible by remember { mutableStateOf(true) }
val trayState = rememberTrayState()
Tray(
state = trayState,
icon = TrayIcon,
hint = "PickMessengerV2",
onAction = {
isVisible = true
},
menu = {
Item(
"Exit",
onClick = {
exitApplication()
}
)
}
)
Window(
onCloseRequest = {
isVisible = false
},
state = windowState,
undecorated = true,
resizable = true,
visible = isVisible
) {
AppTheme(darkTheme = false) {
Row(modifier = Modifier.fillMaxSize()) {
var menuIdx by remember {
mutableStateOf(value = 0)
}
WindowDraggableArea {
Column(
modifier = Modifier.width(67.dp).fillMaxHeight().background(Color(0xFFf3f5f6)),
horizontalAlignment = Alignment.CenterHorizontally
) {
val onClick: (Int) -> Unit = { myIndex ->
menuIdx = myIndex
}
mainMenu(
menuIdx,
0,
listOf("LeftMenu_friend_ON.png", "LeftMenu_friend_OFF.png"),
marginTop = 36,
onClick = onClick
)
mainMenu(
menuIdx,
1,
listOf("LeftMenu_ Orga_ON.png", "LeftMenu_ Orga_OFF.png"),
onClick = onClick
)
mainMenu(
menuIdx,
2,
listOf("LeftMenu_chat_ON.png", "LeftMenu_chat_OFF.png"),
onClick = onClick
)
mainMenu(
menuIdx,
3,
listOf("LeftMenu_letter_OFF_2.png", "LeftMenu_letter_OFF.png"),
onClick = onClick
)
mainMenu(
menuIdx,
4,
listOf("LeftMenu_file_ON.png", "LeftMenu_file_OFF.png"),
onClick = onClick
)
mainMenu(
menuIdx,
5,
listOf("LeftMenu_ Coop_ON.png", "LeftMenu_ Coop_OFF.png"),
onClick = onClick
)
mainMenu(
menuIdx,
6,
listOf("LeftMenu_bnad_ON.png", "LeftMenu_band_OFF.png"),
onClick = onClick
)
}
}
Column(modifier = Modifier.fillMaxSize().background(MaterialTheme.colors.background)) {
WindowDraggableArea{
Row(
modifier = Modifier.fillMaxWidth().height(31.dp),
verticalAlignment = Alignment.CenterVertically
) {
Spacer(modifier = Modifier.weight(1f))
Box(modifier = Modifier.fillMaxHeight().clickable {
windowState.isMinimized = true
}.padding(start = 6.dp, end = 6.dp), contentAlignment = Alignment.Center) {
NsImage("win_1.png")
}
Box(modifier = Modifier.fillMaxHeight().clickable {
windowState.placement = if(windowState.placement == WindowPlacement.Fullscreen){
WindowPlacement.Floating
}else {
WindowPlacement.Fullscreen
}
}.padding(start = 6.dp, end = 6.dp), contentAlignment = Alignment.Center) {
NsImage("win_2.png")
}
Box(modifier = Modifier.fillMaxHeight().clickable {
isVisible = false
}.padding(start = 6.dp, end = 6.dp), contentAlignment = Alignment.Center) {
NsImage("win_3.png")
}
Spacer(modifier = Modifier.width(6.dp))
}
}
}
}
}
}
}
【问题讨论】:
标签: android-jetpack-compose kotlin-multiplatform