我的问题是我想在我的 Application 中添加一个 PreferenceScreen,但我不能使用它,我不知道为什么。
我实现了库androidx.preference:preference:1.1.0-rc01
。然后我想将 PreferenceScreen 添加到我的 XML 布局中,但它没有提出任何建议。
接下来,我将来自 Android-Developers 的 XML 代码复制到我的 XML 布局中并对其进行编译,但是通过启动活动,它因错误而中断: java.lang.ClassCastException: class androidx.preference.PreferenceScreen cannot be cast to android.view.View
有人可以帮我androidx.preference.PreferenceScreen
正确使用吗?
我的布局:
<?xml version="1.0" encoding="utf-8"?>
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent">
<androidx.preference.SwitchPreference
android:defaultValue="true"
android:key="example_switch"
android:summary="Turn this option on or off"
android:title="Settings option" />
</androidx.preference.PreferenceScreen>
Run Code Online (Sandbox Code Playgroud) 我一直在使用 Jetpack Compose Desktop。我注意到一些我真的不明白的事情:
import androidx.compose.desktop.ui.tooling.preview.Preview
import androidx.compose.material.Button
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.material.TextField
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.compose.ui.window.Window
import androidx.compose.ui.window.application
@Composable
@Preview
fun App() {
var text by mutableStateOf("Hello, World!")
MaterialTheme {
TextField(text, onValueChange = { text = it })
Button(onClick = {
text = "Hello, Desktop!"
}) {
Text(text)
}
}
}
fun main() = application {
Window(onCloseRequest = ::exitApplication) {
App()
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我可以更改 中的文本TextField
?我认为在每次重组时,可变状态都会使用初始值重新实例化:所以Text
应该无法更改
import androidx.compose.desktop.ui.tooling.preview.Preview
import …
Run Code Online (Sandbox Code Playgroud) 我已经读到有一种方法可以设置 values-night 和 values 文件夹。但是如何在开始之前从值更改为值,因为我的启动画面。我知道必须有一种方法可以拥有深色和浅色主题的闪屏,因为 WhatsApp。
如何在显示启动画面之前更改为值 - 晚上?