我有这个代码:
...
@Composable
private fun PhoneVerificationCodeScreen(vm: MyViewModel) {
Column(...) {
...
OTPBlock(numberOfCells = NUMBER_OF_OTP_CELLS, isVerifyBtnEnabledState = vm.isVerifyBtnEnabledState)
...
}
}
...
这是预览功能:
class MyViewModelProvider : PreviewParameterProvider<MyViewModel> {
override val values: Sequence<MyViewModel> = sequenceOf(MyViewModel(
SavedStateHandle()
))
}
@Preview(
name = "Phone-portrait",
device = Devices.PHONE,
showBackground = true,
backgroundColor = 0x111,
showSystemUi = true
)
@Composable
private fun PhonePreviewVerificationCodeScreen(
@PreviewParameter(MyViewModelProvider::class) vm: MyViewModel
) = PhoneVerificationCodeScreen(vm = vm)
剧透:在我将 ViewModel 放入参数之前,一切正常。
我检查了几个答案,我尝试的最后一个答案是使用PreviewParameterProvider
,但这也不起作用。
问题是如何“预览” compose 中带有参数的函数?
错误:
java.lang.ClassNotFoundException:my_package.VerificationCodeViewModelProvider在java.lang.ClassLoader.loadClass在java.lang.ClassLoader.loadClass在java.lang.Class.forName0在java.lang.Class.forName在androidx.compose.ui.tooling。 ComposableInvoker.invokeComposable
我通常这样做: