如何在Jetpack Compose中让CameraSelector构建类remember以避免重组问题?
在Compose中用remember缓存CameraSelector避免重组
直接用remember包裹CameraSelector的构建逻辑即可,这样Compose会在首次组合时创建实例,后续重组时复用该实例,避免不必要的对象重建:
val cameraSelector: CameraSelector = remember { CameraSelector.Builder() .requireLensFacing(CameraSelector.LENS_FACING_BACK) .build() }
如果需要支持镜头切换(比如前后摄像头切换),可以给remember添加依赖键,当依赖值变化时才重新构建CameraSelector:
// 存储当前镜头朝向的状态 val lensFacing = remember { mutableStateOf(CameraSelector.LENS_FACING_BACK) } // 当lensFacing.value变化时,才重新创建CameraSelector val cameraSelector: CameraSelector = remember(lensFacing.value) { CameraSelector.Builder() .requireLensFacing(lensFacing.value) .build() }
这样既保证了重组时的性能优化,又能在需要更新镜头朝向时正确重建CameraSelector实例。
内容的提问来源于stack exchange,提问作者Josue Muleshi
相关产品推荐
相关产品推荐

