Tal*_*bar 6 android kotlin android-jetpack-compose
当我在可组合项中添加这一行时,预览会出现异常。
代码: val locationPermissionsState = rememberMultiplePermissionsState( listOf( Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION ) )
异常消息为“此预览无法找到 CompositionLocal,堆栈跟踪为
java.lang.IllegalStateException:应在 com.google.accompanist.permissions.PermissionsUtilKt.findActivity(PermissionsUtil.kt:138) 处的活动上下文中调用权限 com.google.accompanist.permissions.MutableMultiplePermissionsStateKt.rememberMutablePermissionsState(MutableMultiplePermissionsState. kt:80)在com.google.accompanist.permissions.MutableMultiplePermissionsStateKt.rememberMutableMultiplePermissionsState(MutableMultiplePermissionsState.kt:48)在com.google.accompanist.permissions.MultiplePermissionsStateKt.rememberMultiplePermissionsState(MultiplePermissionsState.kt:38)
我能够在 Android Studio (Electric Eel) 中预览可组合函数,这些MultiplePermissionsState函数通过实现接口并硬编码预览所需的状态来使用该接口。
这是一个例子:
@ExperimentalPermissionsApi
class MultiplePermissionsStatePreview : MultiplePermissionsState {
override val allPermissionsGranted: Boolean
get() = false
override val permissions: List<PermissionState>
get() = emptyList()
override val revokedPermissions: List<PermissionState>
get() = emptyList()
override val shouldShowRationale: Boolean
get() = true
override fun launchMultiplePermissionRequest() {
// do nothing
}
}
@ExperimentalPermissionsApi
@Preview
@Composable
private fun PermissionsPreview() {
AppTheme {
PermissionsScreen(
multiplePermissionsState = MultiplePermissionsStatePreview()
// ...
)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
831 次 |
| 最近记录: |