在适配器中使用导航组件是否安全?

Is it safe to use Navigation component in an Adapter?

我正在使用回收站视图来显示提要,每个项目都是在 xml 视图中定义的一个按钮。我只是好奇在从适配器单击回收器视图中的项目时使用导航组件和导航是否安全。我目前在 onBindViewHolder 中为按钮设置了一个 onClickListener,在 onClick 中我设置了以下内容:

TabsFragmentDirections.ActionNavHomeToNavGroupsFeed action =
                        TabsFragmentDirections.actionNavHomeToNavGroupsFeed(
                                myListData.getGroupName()
                        );
Navigation.findNavController(view).navigate(action);

其中方向 class 是通过使用安全参数将参数传递到目的地(从此处 https://developer.android.com/guide/navigation/navigation-pass-data)生成的。

谢谢!!

是的,我会说这是安全的。您的适配器与您的 fragment/activity 寿命一样长,因此看起来不会有任何泄漏的可能性。


话虽如此,通常认为在适配器外部实现该类型的逻辑以获得更好的关注点分离是更好的做法!