UNPKG

@nstudio/ui-collectionview

Version:

Customized NativeScript CollectionView for high performance lists. Supports vertical and horizontal modes, templating, and more.

140 lines (139 loc) 6.71 kB
import { ChangedData, CoreTypes, View, ViewBase } from '@nativescript/core'; import { CollectionViewBase } from './common'; import { TypedArray } from '@nativescript-community/arraybuffers'; export * from './common'; declare module '@nativescript/core/ui/core/view' { interface ViewCommon { layoutChangeListenerIsSet: boolean; layoutChangeListener: android.view.View.OnLayoutChangeListener; _raiseLayoutChangedEvent(): any; handleGestureTouch(event: android.view.MotionEvent): any; } } interface CollectionViewCellHolder extends com.nativescript.collectionview.CollectionViewCellHolder { new (androidView: android.view.View): CollectionViewCellHolder; view: View; clickListener: android.view.View.OnClickListener; } export interface CollectionViewRecyclerView extends com.nativescript.collectionview.RecyclerView { new (context: any): CollectionViewRecyclerView; } declare let CollectionViewCellHolder: CollectionViewCellHolder; export declare enum SnapPosition { START = 0, END = 1 } export declare class CollectionView extends CollectionViewBase { static layoutCompletedEvent: string; static DEFAULT_TEMPLATE_VIEW_TYPE: number; static CUSTOM_TEMPLATE_ITEM_TYPE: number; nativeViewProtected: CollectionViewRecyclerView & { scrollListener: com.nativescript.collectionview.OnScrollListener; layoutManager: androidx.recyclerview.widget.RecyclerView.LayoutManager; owner?: WeakRef<CollectionView>; }; private recyclerListener; private templateTypeNumberString; private templateStringTypeNumber; private _currentNativeItemType; private currentSpanCount; private _viewHolders; private _scrollOrLoadMoreChangeCount; private _nScrollListener; scrolling: boolean; needsScrollStartEvent: boolean; private _hlayoutParams; private _vlayoutParams; private _lastLayoutKey; private _listViewAdapter; private _simpleItemTouchCallback; private _itemTouchHelper; animateItemUpdate: boolean; nestedScrollingEnabled: boolean; itemViewCacheSize: number; extraLayoutSpace: number; recycledViewPool: com.nativescript.collectionview.RecycledViewPool; recycledViewPoolDisposeListener: com.nativescript.collectionview.RecycledViewPool.ViewPoolListener; mInPropertiesSet: boolean; mShouldUpdateInnerSize: boolean; mShouldUpdateSpanCount: boolean; mShouldRefresh: boolean; onResumeNativeUpdates(): void; createNativeView(): com.nativescript.collectionview.RecyclerView; initNativeView(): void; disposeNativeView(): void; onLoaded(): void; getViewForItemAtIndex(index: number): View; _getSpanSize: (item: any, index: any) => number; set spanSize(inter: (item: any, index: any) => number); get spanSize(): (item: any, index: any) => number; decorator: com.nativescript.collectionview.OverlapDecoration; decoratorBuffer: TypedArray; decoratorListener: com.nativescript.collectionview.OverlapDecoration.OverlapDecorationListener; nativeGetItemOverlap(position: number): TypedArray; private attachScrollListenerIfNecessary; private detachScrollListenerIfNecessary; private computeScrollEventData; onScrolled(view: androidx.recyclerview.widget.RecyclerView, dx: number, dy: number): void; onScrollStateChanged(view: androidx.recyclerview.widget.RecyclerView, newState: number): void; addEventListener(arg: string, callback: any, thisArg?: any): void; removeEventListener(arg: string, callback: any, thisArg?: any): void; get android(): androidx.recyclerview.widget.RecyclerView; get layoutManager(): androidsupportv7widgetRecyclerView.LayoutManager; _getViewLayoutParams(): androidviewViewGroup.LayoutParams; defaultPoolSize: number; desiredPoolSize: Map<string, number>; private setNativePoolSize; private setPoolSizes; setPoolSize(key: string, size: number): void; protected updateScrollBarVisibility(value: any): void; private enumerateViewHolders; private enumerateViewHoldersAsync; startDragging(index: number): void; isDragging: boolean; startViewHolderDragging(index: any, viewHolder: CollectionViewCellHolder): void; onReorderLongPress(motionEvent: android.view.MotionEvent): void; _reorderItemInSource(oldPosition: number, newPosition: number): void; _longPressGesture: androidx.core.view.GestureDetectorCompat; _itemTouchListerner: androidx.recyclerview.widget.RecyclerView.OnItemTouchListener; onItemViewLoaderChanged(): void; onItemTemplateSelectorChanged(oldValue: any, newValue: any): void; onItemTemplateChanged(oldValue: any, newValue: any): void; onItemTemplatesChanged(oldValue: any, newValue: any): void; updateSpanCount(requestLayout?: boolean): boolean; updateInnerSize(): boolean; _onColWidthPropertyChanged(oldValue: CoreTypes.PercentLengthType, newValue: CoreTypes.PercentLengthType): void; _onRowHeightPropertyChanged(oldValue: CoreTypes.PercentLengthType, newValue: CoreTypes.PercentLengthType): void; onLayout(left: number, top: number, right: number, bottom: number): void; onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void; onSourceCollectionChanged(event: ChangedData<any>): void; eachChild(callback: (child: ViewBase) => boolean): void; eachChildAsync(callback: any): Promise<void>; refreshVisibleItems(): void; isItemAtIndexVisible(index: number): boolean; findFirstVisibleItemIndex(): number; findLastVisibleItemIndex(): number; _layedOut: boolean; refresh(forceRefresh?: boolean, updateSpanCountRequestsLayout?: boolean): void; get scrollOffset(): number; get verticalOffsetX(): number; get verticalOffsetY(): number; scrollToIndex(index: number, animated?: boolean, snap?: SnapPosition): void; scrollToOffset(offSetValue: any): void; private _setPadding; private createComposedAdapter; getItemCount(): number; getItem(i: number): any; getItemId(i: number): any; onItemIdGeneratorChanged(oldValue: any, newValue: any): void; clearTemplateTypes(): void; getItemViewType(position: number): number; templateKeyToNativeItem(key: string): number; disposeViewHolderViews(): void; getKeyByValue(viewType: number): string; onCreateViewHolder(parent: android.view.ViewGroup, viewType: number): CollectionViewCellHolder; notifyForItemAtIndex(eventName: string, view: View, index: number, bindingContext?: any, native?: any): any; bindedViewHolders: Set<number>; onBindViewHolder(holder: CollectionViewCellHolder, position: number): void; onViewRecycled(holder: any): void; }