public fun interface SceneStrategy<T extends Object>

Known direct subclasses
DialogSceneStrategy

A SceneStrategy that displays entries that have added dialog to their NavEntry.metadata within a Dialog instance.

SinglePaneSceneStrategy

A SceneStrategy that always creates a 1-entry Scene simply displaying the last entry in the list.


A strategy that tries to calculate a Scene given a list of NavEntry.

If the list of NavEntry does not result in a Scene for this strategy, null will be returned instead to delegate to another strategy.

Summary

Public methods

abstract Scene<@NonNull T>
calculateScene(
    @NonNull SceneStrategyScope<@NonNull T> receiver,
    @NonNull List<@NonNull NavEntry<@NonNull T>> entries
)

Given a SceneStrategyScope, calculate whether this SceneStrategy should take on the task of rendering one or more of the entries in the scope.

default @NonNull SceneStrategy<@NonNull T>
then(@NonNull SceneStrategy<@NonNull T> sceneStrategy)

Chains this SceneStrategy with another sceneStrategy to return a combined SceneStrategy.

Public methods

calculateScene

Added in 1.0.0-alpha11
abstract Scene<@NonNull T> calculateScene(
    @NonNull SceneStrategyScope<@NonNull T> receiver,
    @NonNull List<@NonNull NavEntry<@NonNull T>> entries
)

Given a SceneStrategyScope, calculate whether this SceneStrategy should take on the task of rendering one or more of the entries in the scope.

By returning a non-null Scene, your Scene takes on the responsibility of rendering the set of entries you declare in Scene.entries. If you return null, the next available SceneStrategy will be called.

Parameters
@NonNull List<@NonNull NavEntry<@NonNull T>> entries

The entries on the back stack that should be considered valid to render via a returned Scene.

then

Added in 1.0.0-alpha11
default @NonNull SceneStrategy<@NonNull T> then(@NonNull SceneStrategy<@NonNull T> sceneStrategy)

Chains this SceneStrategy with another sceneStrategy to return a combined SceneStrategy.