我通常从现有片段或活动中打开一个新片段。但是,有了适配器(可以在多个片段/活动中使用),如何动态打开特定片段?我通常使用以下代码:
Navigation.findNavController(view).navigate(R.id.action_startFragment_to_destinationFragment);
在navgraph中创建操作之后。
jmo0nnb31#
由于导航是在片段之间进行的,所以通常情况下,您应该让片段负责这样做。正如您所说的,适配器可以在多个片段中使用,因此它应该一次附加到一个特定的片段,通常是片段示例化了它。因此,您可以将侦听器接口传递给由片段实现的适配器;当您想导航到导航图中的另一个片段时,可以在适配器中触发它的回调。此回调方法将在已实现侦听器的片段上执行,您通常可以使用传统的导航代码:
这样你的适配器就可以被重用,每当一个片段想要重用它时,它就应该实现监听器。注意:也许你可以通过考试 int 侦听器回调的参数,该参数将适配器中的行号传递回片段,以便您可以决定导航到其他片段。这样就可以只通过片段保持导航。
int
1条答案
按热度按时间jmo0nnb31#
由于导航是在片段之间进行的,所以通常情况下,您应该让片段负责这样做。
正如您所说的,适配器可以在多个片段中使用,因此它应该一次附加到一个特定的片段,通常是片段示例化了它。
因此,您可以将侦听器接口传递给由片段实现的适配器;当您想导航到导航图中的另一个片段时,可以在适配器中触发它的回调。
此回调方法将在已实现侦听器的片段上执行,您通常可以使用传统的导航代码:
这样你的适配器就可以被重用,每当一个片段想要重用它时,它就应该实现监听器。
注意:也许你可以通过考试
int
侦听器回调的参数,该参数将适配器中的行号传递回片段,以便您可以决定导航到其他片段。这样就可以只通过片段保持导航。