The design and behavior of a Floating Action Button which can animate and expand to show
optional FabOptions when clicked. It's the focal point for the ExpandableFab widget's
functionality, from an end-user's perspective.
The container and controller for all children views of the ExpandableFab widget (Overlay,
ExpandableFab, FabOption, Label). The ExpandableFabLayout handles the bulk of the functionality
for the ExpandableFab widget as a whole (from coordinating opening and closing animations to
screen orientation changes, etc). See below for an example on how to easily set up the
ExpandableFab widget using the ExpandableFabLayout as the containing ViewGroup.
The design and behavior of a single option within an ExpandableFab.
The legal positions of FabOptions, in relation to the previous FabOption in an orientation.
By default, FabOptions are positioned ABOVE the previous FabOption in an orientation.
The legal sizes of ExpandableFabs and FabOptions.
A label of text attached to a view of the ExpandableFab widget.
The legal positions of Labels, in relation to the view they're attached to.
By default, labels are positioned to the LEFT of the view they're attached to.
The screen orientations that the views of this widget can be in. If you only set a single
ExpandableFab widget, it will automatically be used for both portrait and landscape orientations.
Holder for all the views of an ExpandableFab widget in a specific Orientation.
Not meant to be instantiated by clients, as an instance can be retrieved via
ExpandableFabLayout.portraitConfiguration or ExpandableFabLayout.landscapeConfiguration.
Values for the views will only be populated after they are added through calls to
ExpandableFabLayout's addView methods (or after they're defined via XML).
An overlay that will show when an ExpandableFab is clicked in order to partially or fully
obscure the screen's content, allowing the ExpandableFab and FabOptions to become more
apparent.