@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
TypeScript
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;
}