library / com.nambimobile.widgets.efab / Overlay

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

<init>

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(context: Context, orientation: Orientation? = Orientation.PORTRAIT)

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.

Overlay(context: Context, attributeSet: AttributeSet)

Properties

closingAnimationDurationMs

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). Default value is 300L.

var closingAnimationDurationMs: Long

openingAnimationDurationMs

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). Default value is 300L.

var openingAnimationDurationMs: Long

orientation

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

var orientation: Orientation

overlayAlpha

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

var overlayAlpha: Float

overlayColor

The color of the overlay. Default value is white.

var overlayColor: Int

Functions

setOnClickListener

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

fun setOnClickListener(onClickListener: OnClickListener?): Unit