PanelContainer

@IviExperimental(reasons = [])
interface PanelContainer<CD, SD>

A container that visualizes Panels.

The purpose of a panel container is to display the container data of type CD received through ttiviPanelContainerData. CD can be a single panel, a collection of panels or any other panel-related type.

A panel container contains zero or more sub-containers. A sub-container is a grouping of one or more panels that animate together. A sub-container can also be a visual element. This happens when there are visible elements in it's layout, determined by ttiviSubContainerLayoutId. If no value is set, the panel container provides a default layout.

In more technical terms, a sub-container is a ViewGroup responsible for displaying the sub- container data of type SD. SD can be a single panel, a collection of panels or any other panel-related type. It is derived from the ttiviPanelContainerData.

Each sub-container has one or more panel fragment containers. A panel fragment container defines the location and area where an IviFragment created by a Panel is attached. A panel fragment container should be a FragmentContainerView, to prevent a WrongFragmentContainerViolation.

In practice a panel container will implement this interface and extend a ViewGroup. The properties of this class will be set through view binding, and thus are all nullable. This does not mean all properties are optional, a panel container requires ttiviPanelContainerContext to manage panels.

A panel container provides PanelContext to a Panel when attaching it. All panel containers must provide at least a CommonPanelContext. They can provide additional context, like a NavigablePanelContext. A panel can only be displayed by a panel container if the panel container provides sufficient context.

When creating a new panel container, the Create a custom panel container guide is a good starting point.

Properties

Link copied to clipboard

The entry point for a container to communicate with the system UI host.

Link copied to clipboard

The panels to present in the container view.

Link copied to clipboard

A provider of both the enter and exit animations used for the entrance and exit of panel sub-containers. This attribute, if specified, requires that ttiviSubContainerEnterAnimation and ttiviSubContainerExitAnimation are not set.

Link copied to clipboard

An animation resource used for the entrance of panel sub-containers.

Link copied to clipboard

An animation resource used for the exit of panel sub-containers.

Link copied to clipboard

An optional layout reference for panel sub-containers. This layout ID will be used for every sub-container.

Inheritors

Link copied to clipboard
Link copied to clipboard