/tripkit/TripKitAndroidUI/com.skedgo.tripkit.ui.generic.bottomsheet/MarginAwareBottomSheetBehavior

MarginAwareBottomSheetBehavior

\ class MarginAwareBottomSheetBehavior<V : View> : BottomSheetBehavior<V>

Keeps inset margins in the same coordinate space during layout, dragging and nested scrolling.

Material lays out a sheet relative to its top margin, but drags and nested scrolls use absolute offsets. A top margin also reduces a match-parent sheet's measured height, so moving that sheet to zero exposes the map underneath. Use the margin as the minimum expanded offset and remove the extra margin origin from stable layout positions. Saved dragging/settling positions are already absolute and are preserved while valid under the current inset. A settling animation can retain an older target, so constrain its frames and completion to the current expanded bound.

Constructors

MarginAwareBottomSheetBehavior constructor()constructor(context: Context, attrs: AttributeSet?)

Properties

Name Summary
draggable var draggable: Boolean
fitToContents var fitToContents: Boolean
gestureInsetBottomIgnored var gestureInsetBottomIgnored: Boolean
halfExpandedRatio @get:FloatRange(from = 0.0, to = 1.0)
var halfExpandedRatio: Float
hideable var hideable: Boolean
peekHeight var peekHeight: Int
saveFlags var saveFlags: Int
skipCollapsed var skipCollapsed: Boolean
state var state: Int

Functions

Name Summary
addBottomSheetCallback open fun addBottomSheetCallback(@NonNullp0: BottomSheetBehavior.BottomSheetCallback)
blocksInteractionBelow open fun blocksInteractionBelow(@NonNullp0: CoordinatorLayout, @NonNullp1: V): Boolean
disableShapeAnimations @RestrictTo(value = [RestrictTo.Scope.LIBRARY_GROUP])
@VisibleForTesting
open fun disableShapeAnimations()
getExpandedOffset open override fun getExpandedOffset(): Int
getInsetDodgeRect open fun getInsetDodgeRect(@NonNullp0: CoordinatorLayout, @NonNullp1: V, @NonNullp2: Rect): Boolean
getScrimColor @ColorInt
open fun getScrimColor(@NonNullp0: CoordinatorLayout, @NonNullp1: V): Int
getScrimOpacity @FloatRange(from = 0.0, to = 1.0)
open fun getScrimOpacity(@NonNullp0: CoordinatorLayout, @NonNullp1: V): Float
layoutDependsOn open fun layoutDependsOn(@NonNullp0: CoordinatorLayout, @NonNullp1: V, @NonNullp2: View): Boolean
onApplyWindowInsets @NonNull
open fun onApplyWindowInsets(@NonNullp0: CoordinatorLayout, @NonNullp1: V, @NonNullp2: WindowInsetsCompat): WindowInsetsCompat
onAttachedToLayoutParams open override fun onAttachedToLayoutParams(@NonNullp0: CoordinatorLayout.LayoutParams)
onDependentViewChanged open fun onDependentViewChanged(@NonNullp0: CoordinatorLayout, @NonNullp1: V, @NonNullp2: View): Boolean
onDependentViewRemoved open fun onDependentViewRemoved(@NonNullp0: CoordinatorLayout, @NonNullp1: V, @NonNullp2: View)
onDetachedFromLayoutParams open override fun onDetachedFromLayoutParams()
onInterceptTouchEvent open override fun onInterceptTouchEvent(@NonNullp0: CoordinatorLayout, @NonNullp1: V, @NonNullp2: MotionEvent): Boolean
onLayoutChild open override fun onLayoutChild(parent: CoordinatorLayout, child: V, layoutDirection: Int): Boolean
onMeasureChild open fun onMeasureChild(@NonNullp0: CoordinatorLayout, @NonNullp1: V, p2: Int, p3: Int, p4: Int, p5: Int): Boolean
onNestedFling open fun onNestedFling(@NonNullp0: CoordinatorLayout, @NonNullp1: V, @NonNullp2: View, p3: Float, p4: Float, p5: Boolean): Boolean
onNestedPreFling open override fun onNestedPreFling(@NonNullp0: CoordinatorLayout, @NonNullp1: V, @NonNullp2: View, p3: Float, p4: Float): Boolean
onNestedPreScroll open override fun onNestedPreScroll(@NonNullp0: CoordinatorLayout, @NonNullp1: V, @NonNullp2: View, p3: Int, p4: Int, @NonNullp5: IntArray, p6: Int)
onNestedScroll open override fun onNestedScroll(@NonNullp0: CoordinatorLayout, @NonNullp1: V, @NonNullp2: View, p3: Int, p4: Int, p5: Int, p6: Int, p7: Int, @NonNullp8: IntArray)
onNestedScrollAccepted open fun onNestedScrollAccepted(@NonNullp0: CoordinatorLayout, @NonNullp1: V, @NonNullp2: View, @NonNullp3: View, p4: Int, p5: Int)
onRequestChildRectangleOnScreen open fun onRequestChildRectangleOnScreen(@NonNullp0: CoordinatorLayout, @NonNullp1: V, @NonNullp2: Rect, p3: Boolean): Boolean
onRestoreInstanceState open override fun onRestoreInstanceState(@NonNullp0: CoordinatorLayout, @NonNullp1: V, @NonNullp2: Parcelable)
onSaveInstanceState @NonNull
open override fun onSaveInstanceState(@NonNullp0: CoordinatorLayout, @NonNullp1: V): Parcelable
onStartNestedScroll open override fun onStartNestedScroll(@NonNullp0: CoordinatorLayout, @NonNullp1: V, @NonNullp2: View, @NonNullp3: View, p4: Int, p5: Int): Boolean
onStopNestedScroll open override fun onStopNestedScroll(@NonNullp0: CoordinatorLayout, @NonNullp1: V, @NonNullp2: View, p3: Int)
onTouchEvent open override fun onTouchEvent(@NonNullp0: CoordinatorLayout, @NonNullp1: V, @NonNullp2: MotionEvent): Boolean
removeBottomSheetCallback open fun removeBottomSheetCallback(@NonNullp0: BottomSheetBehavior.BottomSheetCallback)
setExpandedOffset open fun setExpandedOffset(p0: Int)
setPeekHeight fun setPeekHeight(p0: Int, p1: Boolean)
setUpdateImportantForAccessibilityOnSiblings open fun setUpdateImportantForAccessibilityOnSiblings(p0: Boolean)