您遇到的错误是无法将FrameLayout LayoutParams转换为LinearLayout LayoutParam。这意味着错误是由LinearLayout的LayoutParams被视为FrameLayout的LayoutParams引起的。这是你需要的解决方案。
linearLayout.updateLayoutParams<FrameLayout.LayoutParams> {
setMargins(marginStart, marginTop, marginEnd, marginBottom)
}
但是,我强烈建议您将when语句范围更新为以下代码,因为您目前没有覆盖所有24小时(0到23)
when (currentHour) {
in 0..11 -> { // Morning (0 AM - 11 AM)
}
in 12..17 -> { // Afternoon (12 PM - 5 PM)
}
in 18..23 -> { // Evening/Night (6 PM - 5 AM)
}
else -> { // Would not happen now!, but a default case
}
}
最后!正如CommonsWare所说,你应该在你的问题中添加错误日志,这样你就可以帮助别人帮助你。
干杯,编码快乐。