首先你需要有一定的CompositionLocal
的知识,如果想不起来的话可以看这里。示例代码在这里。如果有帮助别忘了给个星。
这里简单提一下CompositionLocal
需要和CompositionLocalProvider
一起使用。在Activity里已经继承了ComponentActivity
,在这个类的setContent
方法里已经有了这个实现。所以可以直接使用LocalConfiguration
。
使用LocalConfiguration
就是解决屏幕转向的关键所在了,代码很简单,如:
when (config.orientation) {
Configuration.ORIENTATION_LANDSCAPE -> {
Text("Landscape")
}
else -> {
Text("Portrait")
}
}
这段代码会根据屏幕的方向显示不同的Text
composable。