Навигационный ящик Android studio с фрагментом

#android #android-fragments #navigation-drawer

#Android #android-фрагменты #навигационный ящик

Вопрос:

Привет, я не эксперт в разработке Android. Я пытаюсь разработать приложение, используя шаблон навигационного ящика Android Studio. Итак, я создал новый проект, используя этот шаблон. Но когда я запускаю программу и нажимаю на пункт меню, представление не меняется. Итак, я искал везде в Интернете, я не видел, как я могу справиться с этим. Это код, предоставленный studio

 public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.

int id = item.getItemId();

if (id == R.id.nav_camara) {


} else if (id == R.id.nav_gallery) {

} else if (id == R.id.nav_slideshow) {

} else if (id == R.id.nav_manage) {

} else if (id == R.id.nav_share) {

} else if (id == R.id.nav_send) {

}

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
  

}

Чего я хочу добиться, так это заменить текущее представление на соответствующее представление, на которое нажимается меню.

Комментарии:

1. ваш вопрос заключается в том, как вызвать фрагмент, который не имеет никакого отношения к навигационному ящику (только вы получаете идентификатор элемента ящика), в вашем условии if else .. выполните транзакцию фрагмента .. и прикрепите новый фрагмент к вашему фрейму.. найдите, как это сделать!

2. поскольку меня искали, и попробуйте инструкцию, все равно ничего не произойдет… итак, я публикую свой вопрос здесь

Ответ №1:

Создайте галерею.Java и вставьте этот код:

 public class Gallery extends Fragment {

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.activity_gallery,null);
    }


}
  

И в ваш файл навигационного ящика вставьте этот код:

  if (id == R.id.nav_gallery)
        {
            Fragment fragment = new Gallery();
            FragmentManager fragmentManager = getFragmentManager();
            fragmentManager.beginTransaction().replace(R.id.framelayout, fragment).commit();
        }