Как реализовать Навигационный ящик с компонентом навигации Android - PullRequest
1 голос
/ 17 апреля 2019

Я пытаюсь следовать последним рекомендациям Google по внедрению одного приложения Activity с компонентами навигации.

Однако, прочитав всю навигационную документацию, я все же думаю, что есть много случаев, в которых они не рассматриваются.

Например, как мне реализовать следующий случай:

navgraph

  • Приложение запускается на заставке. Затем после некоторой загрузки переходит к фрагменту новостей.

Примечание: Экран-заставка должен появиться из заднего стека, поскольку он больше не должен быть доступным.

  • Ящик навигации должен быть доступен во всех фрагментах Раздела 1, что позволяет пользователю перемещаться между фрагментами в этом разделе.

  • Однако некоторые фрагменты в разделе могут перемещаться в новую область, в которой должна быть кнопка возврата (не ящик).

Ответы [ 2 ]

1 голос
/ 17 апреля 2019

Вы пытались создать новый проект с выбранным Navigation Drawer Activity?

1.Drawer

В xml вы должны добавить для этого действия FrameLayout, который будет содержать фрагменты.Затем вы можете начать использовать это действие в качестве контейнера для своих фрагментов и, нажав DrawerMenuItem, загрузите определенный фрагмент.Я использую этот метод для перезагрузки фрагментов:

public void replaceFragment (Fragment fragment, Bundle args){
    fragment.setArguments(args);
    getSupportFragmentManager().beginTransaction().replace(R.id.container, fragment).commit();
}

и вызываю его так из упражнения:

replaceFragment(Fragment.newInstance(), args)

Тогда у вас есть ящик, доступный во всех фрагментах.

2.Экран сведений со стрелкой назад

Что касается другого экрана, например, с подробностями статьи, вы можете начать действие с подробностей:

startActivity(new Intent(packageContext, ArticleDetailsActivity.class));

Тогда нетящик, и у вас есть кнопка возврата.

3.Splash

Что касается создания «хорошего» заставки Google «Заставка Android в правильном направлении», то здесь есть посты на средних (от Sylvain Saurel) или bignerdranch (от Chris Stewart), которые освещают эту тему.

0 голосов
/ 17 апреля 2019

Используйте DestinatedChangedListener на navController для блокировки и разблокировки режима ящика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...