dav*_*LEZ 14 kotlin android-jetpack-navigation android-jetpack-compose
我正在发现 android Jetpack Compose(和导航)并尝试使用 as 参数显示视图的预览navController。
为了实现这一点,我使用了PreviewParameter并且没有错误,但预览窗口中没有显示任何内容。
有谁知道如何将假NavController实例传递给可组合项?
class FakeNavController : PreviewParameterProvider<NavController> {
override val values: Sequence<NavController>
get() {}
}
@Preview
@Composable
fun Preview(
@PreviewParameter(FakeNavController::class) fakeNavController: NavController
) {
HomeView(fakeNavController)
}
Run Code Online (Sandbox Code Playgroud)
Ali*_*ami 37
您不必将其设置为可为空并将 null 传递给它。你只需要通过这个:rememberNavController()
@Preview
@Composable
fun Preview() {
HomeView(rememberNavController())
}
Run Code Online (Sandbox Code Playgroud)
PreviewParameter用于使用不同数据创建同一视图的多个预览。您应该从 中返回所需的值values。在您的示例中,您没有返回任何内容,这就是它不起作用的原因(在我的情况下它甚至没有构建)。
这不会帮助您模拟导航控制器,因为您仍然需要以某种方式创建它才能从values. 我认为这是不可能的。
相反,您可以传递一个处理程序,在这种情况下您不需要模拟它:
@Composable
fun HomeView(openOtherScreen: () -> Unit) {
}
// your Navigation view
composable(Destinations.Home) { from ->
HomeView(
openOtherScreen = {
navController.navigate(Destinations.Other)
},
)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7160 次 |
| 最近记录: |