Создайте навигационный ящик для ссылки на фрагменты и действия - PullRequest
0 голосов
/ 17 марта 2019

Итак, у меня есть навигационный ящик, такой как 3 кнопки, которые идут на 2 разных фрагмента, и другая кнопка, которая переходит к Деятельности.

Sample

Когда я щелкаю один фрагмент 1, мой фрагмент открывается с ящиком, все еще неповрежденным, то же самое относится и к Frag 2, но когда я нажимаю на Упражнение 1, ящик исчезает, но я хотел бы, чтобы ящик продолжал и в задании.это может быть сделано.

Ответы [ 2 ]

1 голос
/ 17 марта 2019

То, что вы хотите сделать (примерно), это

  1. Создайте меню как один из ваших ресурсов и установите элементы в этом списке.
  2. В упражнении, в котором вы хотите разместить ящик, создайте объект ящика и создать обратный вызов для onMenuItemSelected.
  3. В этом обратном вызове укажите ссылки на идентификаторы пунктов меню, которые вы создали ранее, и используйте намерения и менеджеры фрагментов, чтобы запустить желаемое действие или фрагмент на основе того, что они выбрали.
0 голосов
/ 17 марта 2019

Этого нельзя сделать.

DrawerLayout живет в вашем Activity, а Fragments, на который вы переключаетесь, также живет в том же Activity.Это причина, по которой переключение фрагментов оставит ящик без изменений.Это потому, что они оба существуют в одной и той же деятельности без какого-либо вмешательства.

Однако запуск Activity отличается.Это совершенно другой Activity, который имеет свой собственный макет.

На самом деле у вас есть только два варианта, если вы хотите продолжить использовать ящик для основной навигации.

  1. Уберите необходимость во втором Activity и измените его наFragment.Таким образом, все ваши фрагменты будут существовать в одном и том же родительском Activity, поэтому он будет использовать тот же ящик, который существует в этом родительском действии.

  2. Создать идентичные DrawerLayout и NavigationView во втором занятии.Вызовите код, чтобы открыть ящик при его создании.Таким образом, хотя вы на самом деле не используете один и тот же ящик, вы создаете иллюзию, что это все тот же ящик.

...