使用场景
我们原有的项目中基本采用的是单Activity架构,页面之间的跳转都是通过Navigation进行的,举个简单的例子。
在这种单Activity架构模式下,有一天我们想把MainActivity或者BFragment使用Compose重构,这个时候我们就需要去处理页面跳转事件,即从Compose中跳转到Fragment,处理这种问题的方式有很多,比如:
- 将要跳转的Fragment修改为Activity,然后在点击事件中startActivity
- 针对有页面跳转事件的UI采用原生方式编写与Compose混合使用
- 将要跳转的Fragment包装成Compose页面,构建统一路由
…
第1种方式违背了单Activity架构直接不考虑,第2种方式当点击事件多的时候代码会非常丑陋,并且不满足首页就是ListView的场景。
综合考虑我觉得第三种方法可能最适合一些。接下来,我们来看如何使用第3种方式处理这个问题。
场景复现
复现的场景比较简单,我们直接编写一个Compose页面,Compose页面中有一个Button事件。
@Composable
fun MainPage(){
Button(onClick = {
//点击事件
}) {