我刚开始在Android中使用Jetpack导航,但我有一个问题。我在实现View.OnClickListener
的Fragment中有以下方法public void onClick(View view) {
if(view.getId() == R.id.imageButton_Softdrinks_en) {
int amount = 1;
Menu_FragmentDirections.ActionMenuFragmentToSoftdrinks action = Menu_FragmentDirections
.actionMenuFragmentToSoftdrinks(amount);
Navigation.findNavController(view).navigate(action);
}
}
基本上该方法有效,但我并不真正理解为什么。方法声明中的View应该是ImageButtons。使用命令:“ Navigation.findNavController(view)”时,Android搜索视图的Navcontroller。鉴于该视图是一个ImageButtom,所以我不明白为什么导航有效。 ImageButtoms没有NavController或NavHost。有人介意向我解释这一点。感谢您的每条评论,也非常感谢您的帮助。
答案 0 :(得分:2)
您可以在Navigation.findNavController(View)
层次结构中的任何View
上调用View
。然后,系统将遍历层次结构,直到找到父Fragment
(NavHostFragment
)为止,然后它将找到NavHostFragment
的NavController。