CompositeStackNavigator

In package com.nhaarman.acorn.navigation

class com.nhaarman.acorn.navigation.CompositeStackNavigator

An abstract Navigator class that uses a stack to navigate through Navigators.

Like StackNavigator this class supports basic pop and push operations to manipulate the stack. Implementers must implement initialStack to provide the initial stack to work with.

This Navigator is able to save and restore its instance state in saveInstanceState, but does not implement SavableNavigator itself. You can opt in to this state saving by explicitly implementing the SavableNavigator interface.

Constructors

constructor(savedState: NavigatorState?)

An abstract Navigator class that uses a stack to navigate through Navigators.

Like StackNavigator this class supports basic pop and push operations to manipulate the stack. Implementers must implement initialStack to provide the initial stack to work with.

This Navigator is able to save and restore its instance state in saveInstanceState, but does not implement SavableNavigator itself. You can opt in to this state saving by explicitly implementing the SavableNavigator interface.

Parameters:
  • savedState: NavigatorState?

    An optional instance that contains saved state as returned by saveInstanceState.

Methods

protected abstract fun initialStack(): List

Creates the initial stack of Navigators for this CompositeStackNavigator.

The last Navigator in the resulting list is regarded as the top element.

Parameters:
  • No parameters
protected abstract fun instantiateNavigator(navigatorClass: KClass, state: NavigatorState?): Navigator

Instantiates a Navigator instance for given navigatorClass and state.

This function is called when restoring the CompositeStackNavigator from a saved state.

Parameters:
  • navigatorClass: KClass

    The Class of the Navigator to instantiate.

  • state: NavigatorState?

    The saved state of the Navigator if applicable. This will be the instance as returned from SavableNavigator.saveInstanceState if its state was saved.

open fun addNavigatorEventsListener(listener: Events): DisposableHandle

Registers given listener with this Navigator.

Parameters:
fun push(navigator: Navigator)

Pushes given navigator onto the stack.

If the receiving Navigator is currently active, the current child Navigator will be stopped, and given navigator will receive a call to Navigator.onStart.

If the receiving Navigator is currently inactive, no Navigator lifecycle events will be called at all. Starting the receiving Navigator will trigger a call to the Navigator.onStart method of given navigator.

Calling this method when the receiving Navigator has been destroyed will have no effect.

Parameters:
fun pop()

Pops the top most Navigator off the stack.

If the receiving Navigator is currently active, the current child Navigator will be stopped and destroyed. If the stack becomes empty, the receiving Navigator will be destroyed, otherwise the new top Navigator will be started.

If the receiving Navigator is currently inactive and there is only one element on the stack, the Navigator will be destroyed. Otherwise, no events will be called at all. Starting the receiving Navigator will trigger a call to the Navigator.onStart method of the new top Navigator.

Calling this method when the receiving Navigator has been destroyed will have no effect.

Parameters:
  • No parameters
fun replace(navigator: Navigator)

Replaces the current active Navigator with given navigator.

If the receiving Navigator is currently active, the current child Navigator will be stopped, and given navigator will receive a call to Navigator.onStart.

If the receiving Navigator is currently inactive, the current top child Navigator will be destroyed.Starting the receiving Navigator will trigger a call to the Navigator.onStart method of given navigator.

Calling this method when the receiving Navigator has been destroyed will have no effect.

Parameters:
fun finish()

Finishes this Navigator.

If this Navigator is currently active, the current child Navigator will be stopped and destroyed, and the receiving Navigator will be destroyed.

If this Navigator is currently not active, the current navigator will only have its Scene.onDestroy method called.

Calling this method when the Navigator has been destroyed will have no effect.

Parameters:
  • No parameters
open fun onStart()

Starts this Navigator.

Calling this method when the Navigator is not started or destroyed triggers a call to Scene.onStart for the Scene that is currently active in the Navigator. Listeners registered with addNavigatorEventsListener will be notified of that Scene through Events.scene.

Calling this method when the Navigator is started or destroyed has no effect.

Parameters:
  • No parameters
open fun onStop()

Stops this Navigator.

Calling this method when the Navigator is started triggers a call to Scene.onStop for any Scenes that are currently active in the Navigator.

Calling this method when the Navigator is stopped or destroyed has no effect.

Parameters:
  • No parameters
open fun onDestroy()

Destroys this Navigator.

Calling this method when the Navigator is started will trigger a call to Scene.onStop for the Scene that is currently active in the Navigator. Furthermore, a call to Scene.onDestroy is triggered for every Scene this Navigator is managing.

Calling this method when the Navigator is stopped triggers a call to Scene.onDestroy for every Scene this Navigator is managing.

Calling this method when the Navigator is destroyed has no effect.

When this method has been called, the Navigator must be considered as dead, and no calls to onStart or onStop should be done anymore.

Parameters:
  • No parameters
open fun scene(scene: Scene, data: TransitionData?)

Called when a Scene change occurs in the Navigator.

Will only be called if a Scene change occurs when the Navigator is in the started state, or when the Navigator enters the started state.

Parameters:
open fun finished()

Called when the Navigator has finished.

Finish events occur when the Navigator has no more Scenes to show, such as a stack-based Navigator with an empty stack, or a wizard Navigator that reached the end of the wizard.

Parameters:
  • No parameters
open fun onBackPressed(): Boolean

Invoked when the user presses the back button.

Parameters:
  • No parameters
open fun saveInstanceState(): NavigatorState
Parameters:
  • No parameters
open fun isDestroyed(): Boolean

Returns whether this Navigator has been destroyed.

Parameters:
  • No parameters