Package icyllis.modernui.view

# Class MeasureSpec

java.lang.Object
icyllis.modernui.view.MeasureSpec

public class MeasureSpec extends Object
A MeasureSpec encapsulates the layout requirements passed from parent to child. Each MeasureSpec represents a requirement for either the width or the height. A MeasureSpec comprises a size and a mode. There are three possible modes:

UNSPECIFIED
  The parent has not imposed any constraint on the child. It can be whatever size it wants.
EXACTLY
  The parent has determined an exact size for the child. The child is going to be given those bounds regardless of how big it wants to be.
AT_MOST
  The child can be as large as it wants up to the specified size.

MeasureSpecs are implemented as ints to reduce object allocation. This class is provided to pack and unpack the <size, mode> tuple into the int.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `AT_MOST`
  Measure specification mode: The child can be as large as it wants up to the specified size.
  `static final int`
  `EXACTLY`
  Measure specification mode: The parent has determined an exact size for the child.
  `static final int`
  `UNSPECIFIED`
  Measure specification mode: The parent has not imposed any constraint on the child.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MeasureSpec()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static int`
  `getMode(int measureSpec)`
  Extracts the mode from the supplied measure specification.
  `static int`
  `getSize(int measureSpec)`
  Extracts the size from the supplied measure specification.
  `static int`
  `makeMeasureSpec(int size, int mode)`
  Creates a measure specification based on the supplied size and mode.
  `static String`
  `toString(int measureSpec)`
  Returns a String representation of the specified measure specification.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### UNSPECIFIED

    public static final int UNSPECIFIED
    Measure specification mode: The parent has not imposed any constraint on the child. It can be whatever size it wants.
    See Also:
      - Constant Field Values

  - ### EXACTLY

    public static final int EXACTLY
    Measure specification mode: The parent has determined an exact size for the child. The child is going to be given those bounds regardless of how big it wants to be.
    See Also:
      - Constant Field Values

  - ### AT_MOST

    public static final int AT_MOST
    Measure specification mode: The child can be as large as it wants up to the specified size.
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### MeasureSpec

    public MeasureSpec()

- ## Method Details

  - ### makeMeasureSpec

    public static int makeMeasureSpec(int size, int mode)
    Creates a measure specification based on the supplied size and mode.

    The mode must always be one of the following:

    - `UNSPECIFIED`
    - `EXACTLY`
    - `AT_MOST`
    Parameters:
      `size` - the size of the measure specification
      `mode` - the mode of the measure specification
    Returns:
      the measure specification based on size and mode

  - ### getSize

    public static int getSize(int measureSpec)
    Extracts the size from the supplied measure specification.
    Parameters:
      `measureSpec` - the measure specification to extract the size from
    Returns:
      the size in pixels defined in the supplied measure specification

  - ### getMode

    public static int getMode(int measureSpec)
    Extracts the mode from the supplied measure specification.
    Parameters:
      `measureSpec` - the measure specification to extract from
    Returns:
      the mode of the measure specification

  - ### toString

    @NonNull public static String toString(int measureSpec)
    Returns a String representation of the specified measure specification.
    Parameters:
      `measureSpec` - the measure specification to convert to a String
    Returns:
      a String with the following format: "MeasureSpec: MODE SIZE"