Overlay

class Overlay : FrameLayout

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.

Developer Notes:

  1. If you would like the Overlay to cover the entire screen, layout_width and layout_height must both be set to match_parent (assuming the parent ExpandableFabLayout has no size restrictions).

  2. Overlays must be defined within an ExpandableFabLayout to function properly.

  3. To ensure that Overlays cover screen content but NOT the ExpandableFab widget itself, ensure the Overlay is the first child of ExpandableFabLayout via XML, or the first view passed to ExpandableFabLayout's addView/addViews methods via code.

Implementation Notes:

  1. Since the Kotlin 'internal' modifier translates to 'public' in Java, the JvmSynthetic annotation is used on those functions and properties to hide them from the published API for Java clients. A proper solution to this issue would be a package-private visibility modifier, but Kotlin has yet to implement it (https://youtrack.jetbrains.com/issue/KT-29227). Until then, the JvmSynthetic annotations should remain in order to present the proper published API to both Java & Kotlin clients.

Since

1.0.0

Constructors

Overlay
Link copied to clipboard
fun Overlay(context: Context, orientation: Orientation? = Orientation.PORTRAIT)

Used to create an Overlay programmatically (do not use the other constructor Overlay(context, attributeSet) - it is for use by the Android framework when inflating an Overlay via XML). This constructor keeps all optional properties of an Overlay at their default values, though you can always change these values after instantiation by using the appropriate setter methods (with the exception of orientation, which cannot be changed after instantiation).

Overlay
Link copied to clipboard
fun Overlay(context: Context, attributeSet: AttributeSet)

Called by the system when creating an Overlay via XML (don't call this directly). To create an Overlay programmatically, use the Overlay(context, orientation) constructor.

Functions

setOnClickListener
Link copied to clipboard
open override fun setOnClickListener(onClickListener: View.OnClickListener?)

Registers a callback to be invoked when this Overlay is clicked. The default behavior the Overlay will be executed before this custom callback.

Properties

closingAnimationDurationMs
Link copied to clipboard
var closingAnimationDurationMs: Long = 300L

The duration (in milliseconds as a positive long) of the animations that will be played when this Overlay is being hidden from a visible state (when the ExpandableFab is closing). Set to 0L if you don't want closing animations played. Default value is 300L.

openingAnimationDurationMs
Link copied to clipboard
var openingAnimationDurationMs: Long = 300L

The duration (in milliseconds as a positive long) of the animations that will be played when this Overlay is being shown from a hidden state (when the ExpandableFab is opening). Set to 0L if you don't want opening animations played. Default value is 300L.

orientation
Link copied to clipboard
var orientation: Orientation

The Orientation this Overlay is viewable in. Default value is Orientation.PORTRAIT.

overlayAlpha
Link copied to clipboard
var overlayAlpha: Float = 0.78431f

The opacity of the overlay as a positive float, where 0 is completely transparent and 1 is completely opaque. Default value is 0.78431f.

overlayColor
Link copied to clipboard
var overlayColor: Int

The color of the overlay. Default value is white.