在Jetpack Compose Activity中能否获取android.R.id.content视图
在Jetpack Compose Activity中能否获取android.R.id.content视图
哈哈完全不是蠢问题!我当初刚接触Compose的时候也纠结过这个点😉
当然可以!
你自己贴的ComponentActivity.setContent()源码其实已经给出了答案:这个方法内部首先就通过window.decorView.findViewById<ViewGroup>(android.R.id.content)定位到了这个根容器,之后要么复用容器内已有的ComposeView,要么新建一个ComposeView并将其作为该容器的子View添加进去。
也就是说,哪怕你的Activity完全是用Composable构建的,android.R.id.content这个原生ViewGroup容器依然会存在,你完全可以通过activity.findViewById<ViewGroup>(android.R.id.content)获取到它。
不过话说回来,在纯Compose的场景下我们一般很少这么操作,毕竟Compose有自己的状态管理和布局体系,但如果是需要和原生View做交互这类特殊需求,这么用完全没问题。
备注:内容来源于stack exchange,提问作者AsafK
相关产品推荐
相关产品推荐

