public class PrimaryLayout implements LayoutElementBuilders.LayoutElement


ProtoLayout layout that represents a suggested layout style for Material ProtoLayout with the primary (compact) chip at the bottom with the given content in the center and the recommended margin and padding applied. There is a fixed slot for an optional primary label above or optional secondary label below the main content area. Visuals and design samples can be found here.

It is highly recommended that main content has max lines between 2 and 4 (dependant on labels present), i.e.: * No labels are present: content with max 4 lines, * 1 label is present: content with max 3 lines, * 2 labels are present: content with max 2 lines.

When accessing the contents of a container for testing, note that this element can't be simply casted back to the original type, i.e.:

PrimaryLayout pl = new PrimaryLayout...
Box box = new Box.Builder().addContent(pl).build();

PrimaryLayout myPl = (PrimaryLayout) box.getContents().get(0);
will fail.

To be able to get PrimaryLayout object from any layout element, fromLayoutElement method should be used, i.e.:

PrimaryLayout myPl = PrimaryLayout.fromLayoutElement(box.getContents().get(0));

Summary

Nested types

public final class PrimaryLayout.Builder

Builder class for PrimaryLayout.

Public methods

static @Nullable PrimaryLayout

Returns PrimaryLayout object from the given LayoutElement (e.g. one retrieved from a container's content with container.getContents().get(index)) if that element can be converted to PrimaryLayout.

@Nullable LayoutElementBuilders.LayoutElement

Get the inner content from this layout.

@Nullable LayoutElementBuilders.LayoutElement

Get the primary chip content from this layout.

@Nullable LayoutElementBuilders.LayoutElement

Get the primary label content from this layout.

@Nullable LayoutElementBuilders.LayoutElement

Get the secondary label content from this layout.

@Dimension(unit = 0) float

Get the vertical spacer height from this layout.

boolean

Returns whether the contents from this layout are using responsive inset.

Public methods

fromLayoutElement

Added in 1.0.0
public static @Nullable PrimaryLayout fromLayoutElement(@NonNull LayoutElementBuilders.LayoutElement element)

Returns PrimaryLayout object from the given LayoutElement (e.g. one retrieved from a container's content with container.getContents().get(index)) if that element can be converted to PrimaryLayout. Otherwise, it will return null.

getContent

Added in 1.0.0
public @Nullable LayoutElementBuilders.LayoutElement getContent()

Get the inner content from this layout.

getPrimaryChipContent

Added in 1.0.0
public @Nullable LayoutElementBuilders.LayoutElement getPrimaryChipContent()

Get the primary chip content from this layout.

getPrimaryLabelTextContent

Added in 1.0.0
public @Nullable LayoutElementBuilders.LayoutElement getPrimaryLabelTextContent()

Get the primary label content from this layout.

getSecondaryLabelTextContent

Added in 1.0.0
public @Nullable LayoutElementBuilders.LayoutElement getSecondaryLabelTextContent()

Get the secondary label content from this layout.

getVerticalSpacerHeight

Added in 1.0.0
public @Dimension(unit = 0) float getVerticalSpacerHeight()

Get the vertical spacer height from this layout.

isResponsiveContentInsetEnabled

Added in 1.2.0
public boolean isResponsiveContentInsetEnabled()

Returns whether the contents from this layout are using responsive inset.