ComponentCreationScope

A receiver for lambdas that create a component within a ContainerDsl. Prevents accidental calls to child()

LazyList {
child(id = 1, deps = arrayOf) {
child(Text("")) // Prevent this
Text("")
}
}

Constructors

Link copied to clipboard
constructor(context: ComponentContext)

Properties

Link copied to clipboard
open override val androidContext: Context
Link copied to clipboard
open override val context: ComponentContext
Link copied to clipboard
open override val resourceResolver: ResourceResolver
Link copied to clipboard
open val <T> TreeProp<T>.value: T

Functions

Link copied to clipboard
fun ResourcesScope.Border(edgeAll: BorderEdge? = null, edgeHorizontal: BorderEdge? = null, edgeVertical: BorderEdge? = null, edgeStart: BorderEdge? = null, edgeEnd: BorderEdge? = null, edgeTop: BorderEdge? = null, edgeBottom: BorderEdge? = null, edgeLeft: BorderEdge? = null, edgeRight: BorderEdge? = null, radius: BorderRadius? = null, effect: BorderEffect? = null): Border

Creates a border style to be applied to a component

Link copied to clipboard
fun ResourcesScope.Card(style: Style = Style, @ColorInt cardBackgroundColor: Int = Color.WHITE, cornerRadius: Dimen = 2.dp, elevation: Dimen = 2.dp, @ColorInt clippingColor: Int = Integer.MIN_VALUE, @ColorInt shadowStartColor: Int = 922746880, @ColorInt shadowEndColor: Int = 50331648, shadowBottomOverride: Dimen? = null, disableClipTopLeft: Boolean = false, disableClipTopRight: Boolean = false, disableClipBottomLeft: Boolean = false, disableClipBottomRight: Boolean = false, transparencyEnabled: Boolean = false, child: ResourcesScope.() -> Component): Component

Builder function for creating Card components.

Link copied to clipboard
open fun getIntAttrValue(componentContext: ComponentContext, id: Int, attrs: IntArray, defaultValue: Int): Int
Link copied to clipboard
fun ResourcesScope.HorizontalScroll(initialScrollPosition: Dimen = HorizontalScrollPrimitive.LAST_SCROLL_POSITION_UNSET.dp, scrollbarEnabled: Boolean = true, wrapContent: Boolean = false, fillViewport: Boolean = false, eventsController: HorizontalScrollEventsController? = null, onScrollChange: (View, scrollX: Int, oldScrollX: Int) -> Unit? = null, horizontalFadingEdgeEnabled: Boolean = false, incrementalMountEnabled: Boolean = false, overScrollMode: Int = View.OVER_SCROLL_IF_CONTENT_SCROLLS, scrollStateListener: ScrollStateListener? = null, fadingEdgeLength: Int = 0, style: Style = Style, child: ResourcesScope.() -> Component): Component

Builder function for creating HorizontalScrollPrimitive components.

Link copied to clipboard
fun ResourcesScope.Image(drawable: Drawable, style: Style = Style, scaleType: ImageView.ScaleType = ScaleType.FIT_CENTER, useIntrinsicSize: Boolean = true): Component

Builder function for creating Image components.

Link copied to clipboard
inline fun ResourcesScope.LazyGrid(orientation: Int = RecyclerView.VERTICAL, snapMode: Int = SnapUtil.SNAP_NONE, snapToStartOffset: Dimen = 0.dp, reverse: Boolean = false, columns: Int = 2, itemAnimator: RecyclerView.ItemAnimator? = CollectionRecyclerSpec.itemAnimator, itemDecoration: RecyclerView.ItemDecoration? = null, clipToPadding: Boolean? = null, clipChildren: Boolean? = null, startPadding: Dimen? = null, endPadding: Dimen? = null, topPadding: Dimen? = null, bottomPadding: Dimen? = null, nestedScrollingEnabled: Boolean? = null, scrollBarStyle: Int? = null, recyclerViewId: Int? = null, overScrollMode: Int? = null, @ColorInt refreshProgressBarBackgroundColor: Int? = null, @ColorInt refreshProgressBarColor: Int? = null, touchInterceptor: LithoRecyclerView.TouchInterceptor? = null, itemTouchListener: RecyclerView.OnItemTouchListener? = null, sectionTreeTag: String? = null, startupLogger: LithoStartupLogger? = null, style: Style = Style, noinline onViewportChanged: <Error class: unknown class>? = null, noinline onDataBound: <Error class: unknown class>? = null, handle: Handle? = null, noinline onPullToRefresh: () -> Unit? = null, onNearEnd: OnNearCallback? = null, onScrollListener: RecyclerView.OnScrollListener? = null, onScrollListeners: List<RecyclerView.OnScrollListener?>? = null, lazyCollectionController: LazyCollectionController? = null, noinline onDataRendered: <Error class: unknown class>? = null, rangeRatio: Float? = null, estimatedViewportCount: Int? = null, useBackgroundChangeSets: Boolean = false, isIncrementalMountEnabled: Boolean = context.lithoConfiguration.componentsConfig.incrementalMountEnabled, alwaysDetectDuplicates: Boolean = false, isLeftFadingEnabled: Boolean = true, isRightFadingEnabled: Boolean = true, isTopFadingEnabled: Boolean = true, isBottomFadingEnabled: Boolean = true, fadingEdgeLength: Dimen? = null, mainAxisWrapContent: Boolean = false, preAllocationHandler: PreAllocationHandler? = context.lithoConfiguration.componentsConfig.preAllocationHandler, shouldExcludeFromIncrementalMount: Boolean = false, enableStableIds: Boolean = context.lithoConfiguration.componentsConfig.useStableIdsInRecyclerBinder, gridLayoutInfoFactory: GridLayoutInfoFactory? = null, onBeforeLayout: LithoRecyclerView.OnBeforeLayoutListener? = null, onAfterLayout: LithoRecyclerView.OnAfterLayoutListener? = null, useLegacyInfra: Boolean = false, crossinline init: LazyGridScope.() -> Unit): Component

A scrollable collection of components arranged in a grid

Link copied to clipboard
inline fun ResourcesScope.LazyList(orientation: Int = RecyclerView.VERTICAL, snapMode: Int = SnapUtil.SNAP_NONE, snapHelper: SnapHelper? = null, snapToStartOffset: Dimen = 0.dp, reverse: Boolean = false, crossAxisWrapMode: CrossAxisWrapMode = CrossAxisWrapMode.NoWrap, mainAxisWrapContent: Boolean = false, itemAnimator: RecyclerView.ItemAnimator? = CollectionRecyclerSpec.itemAnimator, itemDecoration: RecyclerView.ItemDecoration? = null, clipToPadding: Boolean? = null, clipChildren: Boolean? = null, startPadding: Dimen? = null, endPadding: Dimen? = null, topPadding: Dimen? = null, bottomPadding: Dimen? = null, nestedScrollingEnabled: Boolean? = null, scrollBarStyle: Int? = null, recyclerViewId: Int? = null, overScrollMode: Int? = null, @ColorInt refreshProgressBarBackgroundColor: Int? = null, @ColorInt refreshProgressBarColor: Int? = null, touchInterceptor: LithoRecyclerView.TouchInterceptor? = null, itemTouchListener: RecyclerView.OnItemTouchListener? = null, sectionTreeTag: String? = null, startupLogger: LithoStartupLogger? = null, style: Style = Style, noinline onViewportChanged: <Error class: unknown class>? = null, noinline onDataBound: <Error class: unknown class>? = null, handle: Handle? = null, noinline onPullToRefresh: () -> Unit? = null, onNearEnd: OnNearCallback? = null, onScrollListener: RecyclerView.OnScrollListener? = null, onScrollListeners: List<RecyclerView.OnScrollListener?>? = null, lazyCollectionController: LazyCollectionController? = null, noinline onDataRendered: <Error class: unknown class>? = null, rangeRatio: Float? = null, useBackgroundChangeSets: Boolean = false, preAllocationHandler: PreAllocationHandler? = context.lithoConfiguration.componentsConfig.preAllocationHandler, alwaysDetectDuplicates: Boolean = false, isLeftFadingEnabled: Boolean = true, isRightFadingEnabled: Boolean = true, isTopFadingEnabled: Boolean = true, isBottomFadingEnabled: Boolean = true, fadingEdgeLength: Dimen? = null, shouldExcludeFromIncrementalMount: Boolean = false, isIncrementalMountEnabled: Boolean = context.lithoConfiguration.componentsConfig.incrementalMountEnabled, isCircular: Boolean = false, enableStableIds: Boolean = context.lithoConfiguration.componentsConfig.useStableIdsInRecyclerBinder, linearLayoutInfoFactory: LinearLayoutInfoFactory? = null, onBeforeLayout: LithoRecyclerView.OnBeforeLayoutListener? = null, onAfterLayout: LithoRecyclerView.OnAfterLayoutListener? = null, useLegacyInfra: Boolean = false, crossinline init: LazyListScope.() -> Unit): Component

A scrollable collection of components arranged linearly

Link copied to clipboard
inline fun ResourcesScope.LazyStaggeredGrid(orientation: Int = RecyclerView.VERTICAL, snapMode: Int = SnapUtil.SNAP_NONE, reverse: Boolean = false, spans: Int = 2, gapStrategy: Int = StaggeredGridLayoutManager.GAP_HANDLING_NONE, itemAnimator: RecyclerView.ItemAnimator? = CollectionRecyclerSpec.itemAnimator, itemDecoration: RecyclerView.ItemDecoration? = null, clipToPadding: Boolean? = null, clipChildren: Boolean? = null, startPadding: Dimen? = null, endPadding: Dimen? = null, topPadding: Dimen? = null, bottomPadding: Dimen? = null, nestedScrollingEnabled: Boolean? = null, scrollBarStyle: Int? = null, recyclerViewId: Int? = null, overScrollMode: Int? = null, @ColorInt refreshProgressBarBackgroundColor: Int? = null, @ColorInt refreshProgressBarColor: Int? = null, touchInterceptor: LithoRecyclerView.TouchInterceptor? = null, itemTouchListener: RecyclerView.OnItemTouchListener? = null, sectionTreeTag: String? = null, startupLogger: LithoStartupLogger? = null, style: Style = Style, noinline onViewportChanged: <Error class: unknown class>? = null, noinline onDataBound: <Error class: unknown class>? = null, handle: Handle? = null, noinline onPullToRefresh: () -> Unit? = null, onNearEnd: OnNearCallback? = null, onScrollListener: RecyclerView.OnScrollListener? = null, onScrollListeners: List<RecyclerView.OnScrollListener?>? = null, lazyCollectionController: LazyCollectionController? = null, noinline onDataRendered: <Error class: unknown class>? = null, rangeRatio: Float? = null, useBackgroundChangeSets: Boolean = false, isIncrementalMountEnabled: Boolean = context.lithoConfiguration.componentsConfig.incrementalMountEnabled, alwaysDetectDuplicates: Boolean = false, isLeftFadingEnabled: Boolean = true, isRightFadingEnabled: Boolean = true, isTopFadingEnabled: Boolean = true, isBottomFadingEnabled: Boolean = true, fadingEdgeLength: Dimen? = null, preAllocationHandler: PreAllocationHandler? = context.lithoConfiguration.componentsConfig.preAllocationHandler, shouldExcludeFromIncrementalMount: Boolean = false, staggeredGridlayoutInfoFactory: StaggeredGridLayoutInfoFactory? = null, enableStableIds: Boolean = context.lithoConfiguration.componentsConfig.useStableIdsInRecyclerBinder, onBeforeLayout: LithoRecyclerView.OnBeforeLayoutListener? = null, onAfterLayout: LithoRecyclerView.OnAfterLayoutListener? = null, useLegacyInfra: Boolean = false, crossinline init: LazyGridScope.() -> Unit): Component

A scrollable collection of components arranged in a staggered grid.

Link copied to clipboard
fun ResourcesScope.LinearSpacing(all: Dimen? = null, between: Dimen? = null, start: Dimen? = null, end: Dimen? = null): RecyclerView.ItemDecoration

An ItemDecoration to add spacing around list items in a Collection. It is intended for use with linear collections (which is the default layout, see CollectionLayouts.Linear), and wont work with grids or staggered grids.

Link copied to clipboard
fun ResourcesScope.Progress(@ColorInt color: Int? = null, style: Style = Style, indeterminateDrawable: Drawable? = null): ProgressPrimitiveComponent

Builder function for creating ProgressPrimitiveComponent components.

Link copied to clipboard
fun ResourcesScope.RecyclerCollectionComponent(section: Section, recyclerConfiguration: RecyclerConfiguration = RecyclerCollectionComponentSpec.recyclerConfiguration, itemAnimator: RecyclerView.ItemAnimator? = RecyclerCollectionComponentSpec.itemAnimator, itemDecoration: RecyclerView.ItemDecoration? = null, loadingComponent: Component? = null, emptyComponent: Component? = null, errorComponent: Component? = null, recyclerViewClipToPadding: Boolean = RecyclerCollectionComponentSpec.clipToPadding, recyclerViewClipChildren: Boolean = RecyclerCollectionComponentSpec.clipChildren, recyclerViewStartPadding: Dimen? = null, recyclerViewEndPadding: Dimen? = null, recyclerViewTopPadding: Dimen? = null, recyclerViewBottomPadding: Dimen? = null, disablePTR: Boolean = false, nestedScrollingEnabled: Boolean = RecyclerCollectionComponentSpec.nestedScrollingEnabled, scrollBarStyle: Int = RecyclerCollectionComponentSpec.scrollBarStyle, recyclerViewId: Int = RecyclerCollectionComponentSpec.recyclerViewId, overScrollMode: Int = RecyclerCollectionComponentSpec.overScrollMode, @ColorInt refreshProgressBarColor: Int? = null, @ColorInt refreshProgressBarBackgroundColor: Int? = null, touchInterceptor: LithoRecyclerView.TouchInterceptor? = null, itemTouchListener: RecyclerView.OnItemTouchListener? = null, eventsController: RecyclerCollectionEventsController? = null, sectionTreeTag: String? = null, startupLogger: LithoStartupLogger? = null, stickyHeaderControllerFactory: StickyHeaderControllerFactory? = null, sectionsViewLogger: SectionsRecyclerView.SectionsRecyclerViewLogger? = null, handle: Handle? = null, style: Style = Style): RecyclerCollectionComponent

Kotlin wrapper for the Component generated by RecyclerCollectionComponentSpec.

Link copied to clipboard
fun ResourcesScope.scrollBy(controller: LazyCollectionController, dx: Dimen, dy: Dimen)

Scroll the LazyCollection by a given number of pixels. The Scroll is instant. For an animated scroll use smoothScrollBy.

Link copied to clipboard
fun ResourcesScope.scrollToId(controller: LazyCollectionController, id: Any, offset: Dimen = 0.px)

Scroll the LazyCollection so that the child with the given id is fully visible. For an animated scroll use smoothScrollToId.

Link copied to clipboard
fun ResourcesScope.scrollToIndex(controller: LazyCollectionController, index: Int, offset: Dimen = 0.px)

Scroll the LazyCollection so that the child at the given index is fully visible. For an animated scroll use smoothScrollToIndex.

Link copied to clipboard
fun ResourcesScope.smoothScrollBy(controller: LazyCollectionController, dx: Dimen, dy: Dimen)

Perform and animated scroll on the LazyCollection by a given number of pixels. For an instantaneous scroll use scrollBy.

Link copied to clipboard
fun ResourcesScope.smoothScrollToId(controller: LazyCollectionController, id: Any, offset: Dimen = 0.px, smoothScrollAlignmentType: SmoothScrollAlignmentType = SmoothScrollAlignmentType.DEFAULT)

Perform an animated scroll on the LazyCollection so that the child with the given id is fully visible. For an animated scroll use smoothScrollToId.

Link copied to clipboard
fun ResourcesScope.smoothScrollToIndex(controller: LazyCollectionController, index: Int, offset: Dimen = 0.px, smoothScrollAlignmentType: SmoothScrollAlignmentType = SmoothScrollAlignmentType.DEFAULT)

Perform an animated scroll on the LazyCollection so that the child at the given index is fully visible. For an instantaneous scroll use scrollToIndex.

Link copied to clipboard
fun ResourcesScope.Text(text: CharSequence?, style: Style = Style, @ColorInt textColor: Int = Color.BLACK, textSize: Dimen = 14.sp, textStyle: Int = NORMAL, typeface: Typeface? = DEFAULT, @ColorInt shadowColor: Int = Color.GRAY, shadowRadius: Dimen = 0.dp, shadowDx: Dimen = 0.dp, shadowDy: Dimen = 0.dp, alignment: TextAlignment? = null, breakStrategy: Int = TextStylesHelper.DEFAULT_BREAK_STRATEGY, verticalGravity: VerticalGravity = VerticalGravity.TOP, isSingleLine: Boolean = false, ellipsize: TextUtils.TruncateAt? = null, lineSpacingMultiplier: Float = 1.0f, lineHeight: Dimen? = null, extraSpacing: Dimen? = null, letterSpacing: Float = 0.0f, minLines: Int = 0, maxLines: Int = Int.MAX_VALUE, includeFontPadding: Boolean = true, accessibleClickableSpans: Boolean = false, clipToBounds: Boolean = true, handle: Handle? = null, customEllipsisText: CharSequence? = null, @ColorInt backgroundColor: Int? = null, @ColorInt highlightColor: Int? = null, textDirection: TextDirectionHeuristicCompat? = null, @AttrRes defStyleAttr: Int = 0, @StyleRes defStyleRes: Int = 0, dynamicTextColor: DynamicValue<Int>? = null, testKey: String? = null, minimallyWide: Boolean = false, @ColorInt outlineColor: Int? = null, outlineWidth: Dimen = 0.dp, touchableSpanListener: TouchableSpanListener? = null, spanListener: ClickableSpanListener? = null, clickableSpanExpandedOffset: Dimen = 0.dp): Text

Temporary builder function for creating TextSpec components. In the future it will either be auto-generated or modified to have the final set of parameters.

Link copied to clipboard
fun ResourcesScope.TextInput(initialText: CharSequence, style: Style = Style, hint: CharSequence = "", @ColorInt textColor: Int = Color.BLACK, @ColorInt hintTextColor: Int = Color.LTGRAY, textSize: Dimen = 14.sp, typeface: Typeface = Typeface.DEFAULT, textAlignment: Int = View.TEXT_ALIGNMENT_GRAVITY, gravity: Int = Gravity.CENTER_VERTICAL or Gravity.START, editable: Boolean = true, multiline: Boolean = false, minLines: Int = 1, maxLines: Int = Int.MAX_VALUE, inputType: Int = EditorInfo.TYPE_CLASS_TEXT, rawInputType: Int = EditorInfo.TYPE_NULL, imeOptions: Int = EditorInfo.IME_NULL, inputFilter: InputFilter? = null, inputFilters: List<InputFilter>? = null, ellipsize: TextUtils.TruncateAt? = null, onTextChanged: (TextChangedEvent) -> Unit? = null, onSelectionChanged: (SelectionChangedEvent) -> Unit? = null, onInputFocusChanged: (InputFocusChangedEvent) -> Unit? = null, onKeyUp: (KeyUpEvent) -> Boolean? = null, onKeyPreIme: (KeyPreImeEvent) -> Boolean? = null, onEditorAction: (EditorActionEvent) -> Boolean? = null, onInputConnection: (InputConnectionEvent) -> InputConnection? = null, handle: Handle? = null, inputBackground: Drawable? = null, textWatcher: TextWatcher? = null, shouldExcludeFromIncrementalMount: Boolean = false): TextInput

Builder function for creating TextInputSpec components.

Link copied to clipboard
open fun Dimen.toPixels(): Int
Link copied to clipboard
fun ResourcesScope.VerticalScroll(initialScrollPosition: Dimen = 0.dp, scrollbarEnabled: Boolean = false, scrollbarFadingEnabled: Boolean = true, verticalFadingEdgeEnabled: Boolean = false, nestedScrollingEnabled: Boolean = false, fadingEdgeLength: Dimen = 0.dp, @ColorInt fadingEdgeColor: Int? = null, fillViewport: Boolean = false, overScrollMode: Int = View.OVER_SCROLL_IF_CONTENT_SCROLLS, eventsController: VerticalScrollEventsController? = null, incrementalMountEnabled: Boolean = true, onScrollChange: (NestedScrollView, scrollY: Int, oldScrollY: Int) -> Unit? = null, onScrollStateChange: (View, Int) -> Unit? = null, onInterceptTouch: (NestedScrollView, event: MotionEvent) -> Boolean? = null, style: Style = Style, child: ResourcesScope.() -> Component): Component

Builder function for creating Vertical Scroll Primitive.