问题标签 [compose-multiplatform]
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.
kotlin - Compose - 为什么 API 的跨平台不一致?
我一直在使用 Android 上的 Jetpack Compose,并且玩得很开心!然后我决定尝试 compose for desktop,我也非常喜欢!
好吧,我需要尝试 compose for web,我期待找到相同的 API,但实际上我发现我有用于 web 元素的 DSL 包装器。
虽然我完全理解需要特定于目标的 DSL,但我不明白我们缺少基本的小部件,如、Row
等。Column
Box
这是为什么?
kotlin - 单击 Compose Multiplatform 中的其他位置时如何清除 BasicTextField 的焦点?
我有一个BasicTextField
用于桌面的 Jetbrains Compose Multiplatform。当我单击它时,TextField 获得焦点并变为可编辑。但是,当我单击应用程序中的其他位置时,焦点不会丢失,并且该字段仍然可以编辑,就像我刚刚单击它一样。
我知道这种行为是正常的和有意的。尽管如此,当用户点击其他地方时,我希望 TextField 变得不集中,无论它是可点击的还是不可点击的组合。
我如何实现这一目标?
compose-multiplatform - Column(Modifier = ..., () -> Unit): Unit' 已弃用。compose.web.web-widgets API 已弃用
当我开始学习 compose multiplatform for WEB 时,我遇到了column is deprecated的问题。代替它有什么用?
kotlin - 有没有办法在 Compose Multiplatform Project 中重用“常见”的东西,比如 DropdownMenu?
对于桌面,DropdownMenu 由 Gradle 提供:org.jetbrains.compose.material:material-desktop:1.0.1-rc2;对于 Android,它在 Gradle 中:androidx.compose.material:material:1.1.0-beta04@aar
我原以为会有一个共同的 API 都实现了。
我知道我可以定义自己的接口/适配器,然后插入特定于设备的版本,但我想知道是否有一个聪明的惯用 Kotlin 方法来做到这一点。
我尝试使用“期望”和“实际”,但我可以弄清楚语法。(DropdownMenu 没有像期望/实际使用示例中那样的简单签名)。
这是我正在使用的菜单示例...... Android 和桌面版本看起来相同:
我正在寻找一种将其移动到 Common 文件夹而不是重复代码的方法。
我最终这样做了;我创建了一个界面:
然后是一个小对象进行转发:
我仍然很好奇是否有更 Kotlin 的方式来做这件事:)
compose-multiplatform - 如何在 Compose Desktop 中实现多窗口
我正在尝试使用 compose 创建一个多窗口桌面应用程序。
他们将拥有完全不同的屏幕。一个是主屏幕,另一个是子屏幕。我试过这样。
子屏幕旨在由共享演示器内的某些状态流显示,它将在主屏幕上调用为 true,但为了使代码简短,我已经删除了该部分。
}
此代码导致此异常。
此错误发生在主屏幕窗口上,并且没有显示任何内容。
这是什么意思?是否允许多个窗口,因为有 SingleWindowApplication 之类的东西?
我能做些什么 ?
compose-desktop - JetBrains Compose for Desktop 标题栏背景颜色或深色模式
JetBrains Compose for Desktop 中是否可以更改标题栏背景颜色或仅将其更改为暗模式?我使用的是 MacOS,所以条形图可以是亮的或暗的。也可以让标题栏本身不可见(但保留关闭、最小化和最大化按钮)并在其下方创建自己的视图。
我正在查看撰写窗口代码,但在那里找不到。
kotlin - 为什么可滚动修饰符不滚动视图内容?
我正在尝试滚动以在Column
条目数可能超过窗口高度的情况下工作。
我目前正在使用 Compose 1.1.0-rc03,目前我只是想让它在桌面上运行。
我将问题简化为:
但这不会滚动,或者至少不会滚动鼠标滚轮。也许还有另一种滚动方式对我来说不是很明显。
我该如何进行这项工作?
上的文档scrollable
说我可能必须自己管理状态。那么使用rememberScrollState()
还不够吗?
我发现了一些关于禁用列滚动的现有问题,但他们总是在谈论LazyColumn
我在这里没有使用的问题。
kotlin - 无法在 Kotlin Multiplatform 中使用字体
很简单;刚刚从向导创建了一个 Compose Multiplatform 项目。
继续创建主题;但我想使用相同的字体,所以我poppins.ttf
把commonMain/resources/font/
.
然后我在commonMain
模块中声明了以下内容:
在commonDesktop
我使用的模块上:
太好了,这行得通。现在开始commonAndroid
:
由于某种原因,R
该类没有正确生成,我无法使用R.font.poppins
.
如果我将“资源”重命名为“res”并将字体推入,res/font/
那么它就可以工作。(但我只是复制了字体文件)。
我该如何解决这个问题?
kotlin - 如何在 Jetpack Compose 中以便携的方式实现计时器?
我想写一些应用程序,我希望某些事情按计划发生。
每隔几分钟轮询一次 URL 以获取更新似乎是一个相当常见的用例。不过,在这种特殊情况下,我只是想实现一个时钟。
这有效:
但是我必须 import java.util.Timer
,所以它不会是便携式的。
Jetpack Compose 可以做动画,所以它肯定在某个地方有自己的计时器,这意味着应该有一些可移植的方式来做到这一点,但我似乎无法弄清楚。
有没有一种跨平台的方式来为此目的获取计时器?