如何解决Jetpack 导航:如何从 recyclerview 适配器打开新片段?
我通常从现有片段或活动中打开一个新片段。但是,使用可在多个片段/活动中使用的适配器,如何动态打开特定片段?
我通常使用以下代码:
Navigation.findNavController(view).navigate(R.id.action_startFragment_to_destinationFragment);
在导航图中创建操作之后。
解决方法
因为导航发生在片段之间,所以通常你会保持片段的责任。
正如您所说的可以在多个片段中使用的适配器,因此它应该一次附加到特定的片段,通常是实例化它的片段。
因此,您可以将侦听器接口传递给由片段实现的适配器;每当您想导航到导航图中的另一个片段时,您都可以在其中触发其在适配器中的回调。
这个回调方法会在已经实现监听器的fragment上执行,你可以正常使用传统的导航代码:
"(appId eq '_REDACTED_GUID_') and (createdDateTime ge 2020-11-01)"
这样你的适配器就可以被重用,每次一个片段想要重用它时,它应该实现监听器。
注意:可能您可以将 Navigation.findNavController(view).navigate(R.id.action_startFragment_to_destinationFragment);
参数传递给侦听器回调,该回调将适配器中的行号传递回片段,以便您可以决定导航到其他片段。
这样你就可以只通过片段来保持导航。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。