У меня действительно есть небольшая проблема с моим Android-приложением.Фрагментная навигация с навигационным ящиком
Мое приложение Содержит навигационный ящик, который используется для навигации внутри приложения. Для примера
Навигация выдвижные:
- Обзора
- Поиска
- Пользователи
- наполнять избирательные урны фальшивых бюллетеней
При запуске приложения, я загружу Обзор фрагмента. Если пользователь нажимает на другие товары, я изменю фрагменты с:
final FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame_container, fragment, TAG);
transaction.addToBackStack(null);
transaction.commit();
Проблема теперь, когда пользователь переключается, например, от 1> 2> 4> 3 и их нажатием на спину ключ, он принесет ему только один фрагмент назад. 3> 4> 2> 1
Итак, я добавил код, который вернет его в Фрагмент 1 на каждом выходе.
public boolean onKeyDown(int keyCode, KeyEvent event) {
int exit = 0;
if (keyCode == KeyEvent.KEYCODE_BACK) {
getFragmentManager().popBackStack();
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = new Overview();
fm.beginTransaction().add(R.id.frame_container, fragment).addToBackStack("fragBack").commit();
return false;
}
return false;
}
Хорошо, сначала это было хорошо, но теперь я добавил еще несколько фрагментов на более глубоком уровне, но они should't вернуться к Фрагмент 1 на задней прессе.
Для примера
- Обзор (Главный Фрагмент)
- Поиск (Назад Ключ идет Вернуться к Фрагмент 1)
- пользователей (Back Key восходит к Фрагмент 1)
- Материала (Назад Ключ возвращается к фрагменту 1)
4.1 Детали (задний ключ возвращается к фрагменту 4. Материал) < 4.1.1 Подробнее (B ack Key возвращается к фрагменту 4.1)
Было бы хорошо, если бы у кого-то была идея, как я мог бы использовать навигацию в своем приложении.
Greetz
Есть ли конкретная причина, по которой кнопка «Назад» ведет себя так? Обычно пользователи ожидали, что кнопка «Назад» перенесет их на предыдущий экран, а не на главный экран. – juunas
'сделка.replace' собирается удалить ваш текущий фрагмент и добавить новый. Вы должны использовать 'transaction.add' при переходе на более глубокий уровень фрагмента, чтобы он был добавлен в стопку. – CodeMonkey
Да, поэтому mainactivity из приложения - это обзор, и если вы перейдете от Обзор к настройкам, а затем в Search, вы не хотите возвращаться к настройкам, если вы нажмете обратно – AllesFAM