如何实现日历。hour_of_day更改文本内容
如何正确地进行参考,以使topappbar
更改中的文本根据设备一天中的时间而变化?我似乎因文字声明而迷失了方向。
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Demo1Theme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colors.background
) {
Scaffold() {
Column {
TW()
}
}
}
}
}
}
}
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
}
@Composable
fun TimeOfDay(time: String) {
Text(text = "The $time")
val cal: Calendar = Calendar.getInstance()
val hour: Int = cal.get(Calendar.HOUR_OF_DAY)
var mainMessage: String? = null
when (hour) {
in 6..11 -> {
mainMessage = "Morning"
}
in 12..16 -> {
mainMessage = "Afternoon"
}
in 17..20 -> {
mainMessage = "Evening"
}
in 21..23 -> {
mainMessage = "Night"
}
else -> {
mainMessage = "Morning"
}
}
}
@Composable
fun TW() {
Scaffold(
topBar = {
TopAppBar(
title = {
TimeOfDay(time = "?")
},
elevation = 12.dp
)
}, content = {
Greeting("Android")
}
)
}
How can a reference be correctly made so that the text in the TopAppBar
changes depending on the device's hour of day? I seem to have gotten lost with the Text declaration.
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Demo1Theme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colors.background
) {
Scaffold() {
Column {
TW()
}
}
}
}
}
}
}
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
}
@Composable
fun TimeOfDay(time: String) {
Text(text = "The $time")
val cal: Calendar = Calendar.getInstance()
val hour: Int = cal.get(Calendar.HOUR_OF_DAY)
var mainMessage: String? = null
when (hour) {
in 6..11 -> {
mainMessage = "Morning"
}
in 12..16 -> {
mainMessage = "Afternoon"
}
in 17..20 -> {
mainMessage = "Evening"
}
in 21..23 -> {
mainMessage = "Night"
}
else -> {
mainMessage = "Morning"
}
}
}
@Composable
fun TW() {
Scaffold(
topBar = {
TopAppBar(
title = {
TimeOfDay(time = "?")
},
elevation = 12.dp
)
}, content = {
Greeting("Android")
}
)
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一次尝试一次。
和Topappbar
Try this once.
and in TopAppBar
您可以使用这样的启动效果来实现这一目标
You can achieve this by using LaunchedEffect like this