我正在尝试编写一种方法,在KotlinMultiplatform Compose中单击按钮后将屏幕亮度设置为最大。
我创建了一个实际的函数,看起来像这样:
expect fun setBrightness(brightness: Float)
然后在commonMain模块中实现了Android和iOS端的实际类。
安卓系统:
actual fun setBrightness(brightness: Float) {
val window = requireActivity().window
val layoutParams = window.attributes
layoutParams.screenBrightness = brightness // set the brightness value between 0 and 1
window.attributes = layoutParams
}
iOS:
actual fun setBrightness(brightness: Float) {
UIScreen.main.brightness = brightness
}
问题是requireActivity()
在共享目录中的androidMain模块中未解析。我该怎么办?我想这是因为它只在原生Android端可用。
如何使用KMM在两个平台上设置亮度,以便在Compose中工作?
1条答案
按热度按时间b1payxdu1#
您应该考虑这种方法:
1.在
commonMain
中创建接口1.然后在
commonMain
中创建expect
类1.然后为Android创建
actual
类1.然后你只需要注入
context
(在Koin中你可以使用androidContext()
)