compose嵌套activity。

59 阅读1分钟
抽象的需求,抽象的实现。

object ActivityUtils {
    fun activityToView(id: Class<Any>, savedInstanceState: Bundle?): View? {
        val intent = Intent()
        intent.setClass(ActivityUtils.getTopActivity(), id)       
        val localActivityManager = LocalActivityManager(ActivityUtils.getTopActivity(), true)
        val window = localActivityManager.startActivity(id.name, intent)
        return window.decorView
    }
}

compose代码:

val activityView =
            ActivityUtils.activityToView(TestActivity::class.java, savedInstanceState)

        activityView?.apply {
            AndroidView(modifier = Modifier
                .fillMaxWidth()
                .fillMaxHeight(), factory = {
                this
            })
        }