Подтвердить что ты не робот

Android UINavigationController-подобная функция

На iPhone я использую контроллер навигации, чтобы нажимать и вызывать "Просмотры". Очень удобно.

Есть ли эквивалент в Android?

4b9b3361

Ответ 1

Как правило, в android каждый вид отображается в своем собственном действии. Вы можете прочитать о действиях в документации . Чтобы перейти к новой операции или представлению, вы используете intent.

Если вы еще этого не сделали, я настоятельно рекомендую прочитать эти вступительные андроидные документы. Они не слишком длинны и хорошо помогают объяснить основную структуру программы.

Ответ 2

Это старый вопрос, но я считаю, что ответ изменился. Теперь можно имитировать стек Nav в iOS в android с помощью фрагментов. http://developer.android.com/reference/android/app/Fragment.html

В основном вместо перехода от Activity to Activity вы вместо этого остаетесь в одном Activity, который управляет отображением, организацией и анимацией фрагментов, каждый из которых содержит свое собственное поведение, очень похожее на модель NavController/UIViewController в iOS.

Он также обратно совместим как статическая библиотека, поэтому вы можете реализовать его на устройствах с предварительной сотой. Стратегии для сотовой и обратной совместимости

Ответ 3

Я создал Framework (github) для обеспечения иерархического шаблона навигации с анимацией, чтобы обеспечить ощущение навигации, а не запускать новые действия каждый раз.

Android Basic Framework Image

Здесь, как его использовать:

  • Добавьте фреймворк в свой проект в качестве модуля
  • Добавить новый Java-класс в ваш проект ( "Файл - Новый - Java-класс" ). Примечание. Если вы редактируете файл Activity.java, который предоставляет вам шаблон, удалите все его реализации и оставьте его пустым.
  • Сделайте расширение NavigationActivity
  • Внедрить все абстрактные методы NavigationActivity

(в Android Studio, если вы нажмете Alt + insert и выберите метод реализации - все определения функций будут автоматически сгенерированы).

public class NavigationTest extends NavigationActivity{
    @Override
    public Fragment firstFragment() {
        //return the first fragment that will be shown  

    }

    @Override
    public Boolean showBackButtonInFirstFragment() {
        //show back button already in the first Fragment
        //set to True if this activity is called by another Activity
        //the back button will then pop back to the previous Activity

    }

    @Override
    public Boolean showMasterDetailLayoutInTablets() {
        //set to false if you don't want a master-detail layout in tablets

    }
}

Представление нового фрагмента

Вы можете представить новый фрагмент (с приятной анимацией), вызвав метод pushFragment из NavigationActivity.

public void pushFragment(Fragment newFragment, animationType animation, boolean showAsDetailFragmentIfPossible)

newFragment (фрагмент): новый фрагмент, который будет представлен

анимация (animationType): тип анимации: RIGHT_TO_LEFT, BOTTOM_TO_TOP, FLIP

showAsDetailFragmentIfPossible (boolean): если установлено как "Истина", пользователь находится в планшетном ПК, и вы используете макет главной детали, фрагмент будет показан в подробном фрагменте (панель в справа)!

Поскольку вы можете получить доступ к активности из любого фрагмента с помощью метода getActivity(), , вы можете показать новый фрагмент из отображаемого в настоящее время фрагмента. Например, вы можете поместить этот код в кнопку прослушивания кнопки:

NextFragment f = new NextFragment();
NavigationActivity nav =((NavigationActivity)getActivity());
nav.pushFragment(f,NavigationActivity.animationType.RIGHT_TO_LEFT,false);

Вам не нужно беспокоиться о реализации поведения кнопки "Назад". Это автоматически обрабатывается классом NavigationActivity.

Ответ 4

В 2018 году Google представила новую библиотеку, называемую компонентом Navigation Architecture. Компонент Navigation - это новый компонент архитектуры, который должен упростить реализацию навигации в приложении. В самом начале важно отметить, что компонент Navigation привязан к одной операции.

enter image description here

Подробнее здесь - https://proandroiddev.com/android-navigation-arch-component-a-curious-investigation-3e56e24126e1