class CreateView
Defined at line 368 of file fidling/gen/sdk/fidl/fuchsia.ui.composition/fuchsia.ui.composition/cpp/fidl/fuchsia.ui.composition/cpp/markers.h
Two Flatland instances may be connected in a parent-child relationship. The parent endpoint
is held in a Viewport, and the child endpoint is held in a View. The parent Flatland
instance that creates a Viewport has control over how the child's View is integrated into
its own View.
The lifecycle of a parent-child connection starts with two endpoints of a channel object:
a ViewportCreationToken and a ViewCreationToken. Out-of-band protocols pass the
ViewportCreationToken to the parent, which calls [`CreateViewport`], and the
ViewCreationToken to the child, which calls [`CreateView`].
Only nodes connected to the Root Transform in this Flatland instance will be rendered into
the parent's Viewport.
Calling [`CreateView`] a second time will disconnect the Root Transform from the existing
parent's Viewport, and attach it to a new parent's Viewport. In other words, each View can
only have one parent.
This function is queued, meaning that the Root Transform will not be attached to the
parent Viewport until [`Present`] is called. However, clients will receive information
through their ParentViewportWatcher (e.g., LayoutInfo) immediately after calling this
function, even if they have not called [`Present`] or [`SetRootTransform`]. This allows
clients to wait for layout information from their parent before calling [`Present`].
Any illegal operations on ParentViewportWatcher will cause both ParentViewportWatcher
channel and this Flatland channel to be torn down.
Lifecycle note. The lifetime of the ParentViewportWatcher channel is bound by the peer
ViewportCreationToken. When the ViewportCreationToken dies, this ParentViewportWatcher
channel is destroyed.
Views and subgraphs of Views created using `CreateView` will not be represented in the
ViewTree, and hence will not be able to participate in any ViewTree-dependent interactions
such as touch, mouse or focus.
The Flatland protocol provides no way for Views in the subgraph of a View created with
`CreateView` to know that they are excluded from the ViewTree.
Public Members
static const bool kHasClientToServer
static const bool kHasClientToServerBody
static const bool kHasServerToClient
static const bool kHasServerToClientBody
static const bool kHasNonEmptyUserFacingResponse
static const bool kHasDomainError
static const bool kHasFrameworkError
static const uint64_t kOrdinal