问题标签 [compose-desktop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
326 浏览

kotlin - Jetpack Compose 桌面 – MaterialTheme.colors.background 不工作

设置 MaterialTheme.colors

我正在尝试在 Jetpack Compose for Desktop(非移动设备)中创建一个非常基本的窗口,但在更改窗口颜色时遇到了一些困难。我看过一些教程和示例,但也许我不太了解颜色主题是如何正确实现的。
我写的代码应该创建一个深色背景的窗口,但程序运行时的窗口是白色的。
请提供任何关于我做错了什么的见解。

代码(科特林)

窗户

以光为主题的橱窗

其他信息

macOS Big Sur
IntelliJ 2021.2
Jetpack Compose 0.4.0

0 投票
1 回答
248 浏览

kotlin - Jetpack compose for desktop:在后台运行应用程序?

我是jetpack compose的新手。我对该主题进行了很多研究,但找不到任何有用的东西。我想要实现的是,如果我关闭窗口,我的应用程序将留在后台,并且可以从托盘再次打开。我设法创建了托盘,但是当我关闭应用程序窗口时,它会关闭整个应用程序。我怎样才能做到这一点?

此应用程序仅适用于 Windows 和 MacOS。我现在不关心安卓

0 投票
1 回答
140 浏览

kotlin - 如何在 Compose 中编辑 TextField 期间处理关键事件?

我正在桌面组合上制作一个国际象棋引擎,我正在尝试实现的一件事是TextField我可以粘贴几个动作来重新创建游戏。

我在将输入的文本保存到TextField可组合文件时遇到问题。

我的文本可组合如下,我知道在我当前的实现中,每次移动变量更改时都会打印,但我只是希望在我按下ENTER键盘上的键时发生这种情况。

我正在使用打印来尝试一些代码,但我想要做的是将字符串保存到列表或其他东西,但我可以稍后在我自己的实现。

我只找到关于如何使用 android 和 android 特定方法的解释。

有人向我指出了一种处理键绑定的解决方案,如下 所示:ENTER如何 在 Kotlin Desktop Compose 中触发 PC 键盘 输入不是只有一次根据我的研究我需要实现这样的东西: Box没有捕获Compose Desktop中的关键事件, 但我似乎无法使用不确定它是否特定于editText,如果我' m 缺少一些导入,或者是否有另一种方法可以使用可组合的 TextField 来做到这一点。ENTERENTERKeyEvent.ACTION_UP

给出建议后我的代码

我设法通过将 if 条件更改为此来解决此问题:

这样每次我写东西并按下ENTER它时都会打印字符串并清除 mutableState,而当ENTER仍然按下它时它不会打印,因为 mutableState 是一个空字符串。我仍在寻找比这更好的解决方案

0 投票
1 回答
69 浏览

draggable - JSplitPane 的 Jetpack Compose 替代品是什么?

在 Swing 中,我使用JSplitPane创建左侧(前导)具有树视图的区域和右侧(尾部)具有十六进制查看器的区域,用户可以在其中移动分隔线以调整每个获得的空间。

由于 Jetpack Compose 仍然相对较新,因此诸如SplitView(此类组件遵循其命名方案的假设名称)之类的基本组件尚不存在。我能看到的最接近的概念是RowColumn但那些不是用户可调整大小的(据我所知。)

在不求助于嵌入 SwingJSplitPane然后在拆分窗格的每一侧嵌入 Compose 组件的情况下,有没有一种好方法可以做到这一点?

我发现了一个例子,它让我完成了 90% 的工作,但是有一些被移除的 API 很难找到替代品,因为发行说明似乎甚至没有提到它。(!!)

0 投票
1 回答
171 浏览

kotlin - 如何垂直对齐文本字段中的文本和前导/尾随图标

有没有办法将尾随/前导图标和文本设置在同一级别?默认情况下,它不是如下图所示。我尝试更改fontStyle参数TextField但没有成功。文本显示高于图标

在此处输入图像描述

0 投票
0 回答
62 浏览

kotlin - 如何在 Kotlin Compose 中启用多个 BasicTextField 之间的选择

正如您在此处看到的,有一个可组合的函数可用作文本函数的包装器:

但是,它不适用于 BasicTextField。

有关更多上下文,我正在尝试使CodeViewer可编辑,并且我不想像在记事本中那样使用单个 BasicTextField 以实现“简单性”。

我正在考虑SelectionContainer为我的用例实现类似的东西,但我不确定这是否可能,甚至是一个好主意。

有什么想法吗?

0 投票
2 回答
121 浏览

kotlin - Jetpack Compose mutableStateList 与 mutableList 性能

与普通变量 mutableList、mutableMap 相比,mutableState、mutableStateList、mutableStateMap 的表现如何?如果有观察者在听,它们当然会更慢(因为触发了重组),但是如果根本没有观察者,它们之间有区别吗?

提前致谢。

0 投票
0 回答
43 浏览

kotlin - 在 kotlin compose 桌面中通过打印机打印值

我有一个从用户那里获取价值的撰写桌面应用程序。
我想将值保存到包含表、列和行的文件(如 html、pdf、...)中,并将此文件发送到打印机。
或发送值而不保存它们,只需将表、行和列(格式化值)发送到打印机。
如果打印文件更好,最好的文件格式是什么,我该怎么办?
否则如何打印而不保存到文件?
谢谢

0 投票
1 回答
502 浏览

kotlin - Compose - 为什么 API 的跨平台不一致?

我一直在使用 Android 上的 Jetpack Compose,并且玩得很开心!然后我决定尝试 compose for desktop,我也非常喜欢!

好吧,我需要尝试 compose for web,我期待找到相同的 API,但实际上我发现我有用于 web 元素的 DSL 包装器。

虽然我完全理解需要特定于目标的 DSL,但我不明白我们缺少基本的小部件,如、Row等。ColumnBox

这是为什么?

0 投票
1 回答
66 浏览

kotlin - 如何将序列化程序设置为扩展公共接口的内部类?

我正在尝试kotlinx.serializationCompose Desktop类创建一个序列化程序,我有这个:

这应该用于MutableState类的实例(如@Serializer注释所述),但我必须为每个属性放置一个显式序列化程序,否则我会收到此错误:

使用的代码:

我必须将此注释放在我的财产上:

没有办法自动将我的序列化程序链接到MutableState接口吗?由于SnapshotMutableStateImpl是内部的,我无法将其设置为此类。