如何禁用可组合功能的横向模式?我想始终以纵向模式显示可组合。
PS:无法在 Activity 的 list 文件中设置它,因为我希望这种行为仅适用于一个可组合的而不是 Activity 中的其他人。
最佳答案
您可以使用 DisposableEffect
+ Activity requestedOrientation
.
@Composable
fun LockScreenOrientation(orientation: Int) {
val context = LocalContext.current
DisposableEffect(Unit) {
val activity = context.findActivity() ?: return@DisposableEffect onDispose {}
val originalOrientation = activity.requestedOrientation
activity.requestedOrientation = orientation
onDispose {
// restore original orientation when view disappears
activity.requestedOrientation = originalOrientation
}
}
}
fun Context.findActivity(): Activity? = when (this) {
is Activity -> this
is ContextWrapper -> baseContext.findActivity()
else -> null
}
用法:@Composable
fun Screen() {
LockScreenOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
}
关于android - 在撰写中禁用横向模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69079267/