На iPhone я использую контроллер навигации, чтобы нажимать и вызывать "Просмотры". Очень удобно.
Есть ли эквивалент в Android?
На iPhone я использую контроллер навигации, чтобы нажимать и вызывать "Просмотры". Очень удобно.
Есть ли эквивалент в Android?
Как правило, в android каждый вид отображается в своем собственном действии. Вы можете прочитать о действиях в документации . Чтобы перейти к новой операции или представлению, вы используете intent.
Если вы еще этого не сделали, я настоятельно рекомендую прочитать эти вступительные андроидные документы. Они не слишком длинны и хорошо помогают объяснить основную структуру программы.
Это старый вопрос, но я считаю, что ответ изменился. Теперь можно имитировать стек Nav в iOS в android с помощью фрагментов. http://developer.android.com/reference/android/app/Fragment.html
В основном вместо перехода от Activity to Activity вы вместо этого остаетесь в одном Activity, который управляет отображением, организацией и анимацией фрагментов, каждый из которых содержит свое собственное поведение, очень похожее на модель NavController/UIViewController в iOS.
Он также обратно совместим как статическая библиотека, поэтому вы можете реализовать его на устройствах с предварительной сотой. Стратегии для сотовой и обратной совместимости
Я создал Framework (github) для обеспечения иерархического шаблона навигации с анимацией, чтобы обеспечить ощущение навигации, а не запускать новые действия каждый раз.
Здесь, как его использовать:
(в 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.
В 2018 году Google представила новую библиотеку, называемую компонентом Navigation Architecture. Компонент Navigation - это новый компонент архитектуры, который должен упростить реализацию навигации в приложении. В самом начале важно отметить, что компонент Navigation привязан к одной операции.
Подробнее здесь - https://proandroiddev.com/android-navigation-arch-component-a-curious-investigation-3e56e24126e1