У меня есть график навигации, который использует этот фрагмент в качестве дома в основной деятельности XML.
<fragment
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
class="androidx.navigation.fragment.NavHostFragment"
app:navGraph="@navigation/main_nav_graph"
app:defaultNavHost="true"/>
У меня есть макет Drawer с меню, я не могу сделать навигацию работать, когда я нажимаю на кнопку навигационного ящика (он работает из основного фрагмента, но не когда я нажимаю на кнопки «Ящик»), если я использую старый способ программирования навигационного ящика с помощью: getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new_fragment).commit();
, мой navcontroller теряется !! и я получаю ошибки, такие как
целевой фрагмент в неизвестном от navcontroller, потому что контроллер увидит домашний фрагмент как отображаемый в данный момент, даже если это не так (из отладки)
public boolean onNavigationItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.action_1:
//doesn't work when it current fragment doesnt match the
//action_fromfragmentx_to_fragmenty
Navigation.findNavController(this,R.id.fragment_container)
.navigate(R.id.action_fromfragmentx_to_fragmenty);
break;
//Other menu options...
}
Отсюда мой вопрос: как мне переопределить этот onNavigationItemSelected в Java, чтобы компонент навигации работал? Любая ссылка или родственник делать c об этой теме (в Java)?.