Я создал навигационный ящик, используя фрагменты. У меня есть функция, которая изменяет фрагменты при нажатии на элемент drawerlist. У меня есть некоторые фрагменты. Я хочу вызвать другой фрагмент внутри текущего фрагмента нажатием кнопки. но когда я нажимаю кнопку «Button It», на самом деле меняет фрагмент, но я хочу, чтобы и навигация была изменена, когда вызывается фрагмент. Пожалуйста, предложите мне что-нибудь.изменить навигационный ящик, когда фрагмент вызова из другого фрагмента
У меня есть два фрагмента с именем HomeFragment и FindPeopleFragment. и кнопка в HomeFragment фрагмента, который вызывает FindPeopleFragment
Вот мой щелчок кнопки событие записывается в HomeFragment
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
Button btn = (Button) rootView.findViewById(R.id.find_people);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Fragment fragment = new FindPeopleFragment();
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
}
}
});
Вот код, который изменяет фрагменты в MainActivity
Fragment fragment = null;
switch (position) {
case 0:
fragment = new HomeFragment();
break;
case 1:
fragment = new FindPeopleFragment();
break;
case 2:
fragment = new PhotosFragment();
break;
case 3:
fragment = new CommunityFragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
Здесь написано код в OnCreate от MainActivity
mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
// setting the nav drawer list adapter
adapter = new NavDrawerListAdapter(getApplicationContext(),
navDrawerItems);
mDrawerList.setAdapter(adapter);
ссылка на код, в котором я делаю то же самое link
Что вы понимаете, сменив навигационный ящик? Вам нужен другой навигационный ящик при смене фрагмента? Если это так, это может быть невозможно. У вас могут быть разные навигационные ящики для разных видов деятельности, но не для разных фрагментов одной и той же активности. – Apurva
@Apurva Когда я выбираю FindPeopleFragment из drawerlist, он показывает меня. но когда я вызываю его из HomeFragment, то drawerlist по-прежнему показывает мне HomeFragment как выбранный. Я хочу, чтобы это было обновлено, когда я вызываю FindPeople фрагмент из HomeFragment. –