ReplacingNavigator

In package com.nhaarman.acorn.navigation

class com.nhaarman.acorn.navigation.ReplacingNavigator

A navigator class that can switch between Scenes, but has no 'back' behavior.

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?)

A navigator class that can switch between Scenes, but has no 'back' behavior.

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 initialScene(): Scene

Returns the Scene this Navigator should start with.

Will only be called once in the lifetime of the Navigator, and zero times if the Navigator is being restored from a saved state.

Parameters:
  • No parameters
protected abstract fun instantiateScene(sceneClass: KClass, state: SceneState?): Scene

Instantiates the Scene for given sceneClass and state.

This method is usually invoked when the Navigator is being restored from a saved state.

Parameters:
  • sceneClass: KClass

    The class of the Scene to instantiate

  • state: SceneState?

    An optional saved state instance to restore the new Scene's state from.

fun replace(newScene: Scene, data: TransitionData?)

Replaces the current Scene with newScene.

If this Navigator is currently active, the current Scene will go through its destroying lifecycle calling Scene.onStop and Scene.onDestroy. newScene will have its Scene.onStart method called, and any listeners will be notified of the Scene change.

If this Navigator is currently stopped, no Scene lifecycle events will be called at all, and listeners will not be notified. Calling this Navigator's onStart will trigger a call to the Scene.onStart method of newScene notify the listeners.

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

Parameters:
  • newScene: Scene

    The Scene instance that should replace the current one.

  • data: TransitionData?

    Any transition data for this transition.

fun finish()

Finishes this Navigator.

If this Navigator is currently active, the current Scene will go through its destroying lifecycle calling Scene.onStop and Scene.onDestroy.

If this Navigator is currently not active, the current Scene 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 addNavigatorEventsListener(listener: Events): DisposableHandle

Registers given listener with this Navigator.

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 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