feat:List add scrollToItem method

This commit is contained in:
pengfei.zhou
2020-04-22 11:18:21 +08:00
committed by osborn
parent 2541a13d74
commit 5f4942a8ff
12 changed files with 129 additions and 6 deletions

View File

@@ -1889,6 +1889,9 @@ var List = /** @class */ (function (_super) {
return this.cachedViews.values();
}
};
List.prototype.scrollToItem = function (context, pos, animated) {
return this.nativeChannel(context, 'scrollToItem')({ pos: pos, animated: animated });
};
List.prototype.reset = function () {
this.cachedViews.clear();
this.itemCount = 0;
@@ -1953,6 +1956,10 @@ var List = /** @class */ (function (_super) {
Property,
__metadata$5("design:type", Function)
], List.prototype, "onScrollEnd", void 0);
__decorate$5([
Property,
__metadata$5("design:type", Number)
], List.prototype, "scrolledPosition", void 0);
return List;
}(Superview));
function list(config) {

View File

@@ -1395,6 +1395,9 @@ class List extends Superview {
return this.cachedViews.values();
}
}
scrollToItem(context, pos, animated) {
return this.nativeChannel(context, 'scrollToItem')({ pos, animated });
}
reset() {
this.cachedViews.clear();
this.itemCount = 0;
@@ -1459,6 +1462,10 @@ __decorate$5([
Property,
__metadata$5("design:type", Function)
], List.prototype, "onScrollEnd", void 0);
__decorate$5([
Property,
__metadata$5("design:type", Number)
], List.prototype, "scrolledPosition", void 0);
function list(config) {
const ret = new List;
for (let key in config) {

View File

@@ -2854,6 +2854,9 @@ class List extends Superview {
return this.cachedViews.values();
}
}
scrollToItem(context, pos, animated) {
return this.nativeChannel(context, 'scrollToItem')({ pos, animated });
}
reset() {
this.cachedViews.clear();
this.itemCount = 0;
@@ -2918,6 +2921,10 @@ __decorate$5([
Property,
__metadata$5("design:type", Function)
], List.prototype, "onScrollEnd", void 0);
__decorate$5([
Property,
__metadata$5("design:type", Number)
], List.prototype, "scrolledPosition", void 0);
function list(config) {
const ret = new List;
for (let key in config) {

3
doric-js/index.d.ts vendored
View File

@@ -499,6 +499,7 @@ declare module 'doric/lib/src/widget/image' {
declare module 'doric/lib/src/widget/list' {
import { View, Superview, NativeViewModel } from "doric/lib/src/ui/view";
import { Stack } from "doric/lib/src/widget/layouts";
import { BridgeContext } from "doric/lib/src/runtime/global";
export class ListItem extends Stack {
/**
* Set to reuse native view
@@ -521,6 +522,8 @@ declare module 'doric/lib/src/widget/list' {
x: number;
y: number;
}) => void;
scrolledPosition?: number;
scrollToItem(context: BridgeContext, pos: number, animated?: boolean): Promise<any>;
reset(): void;
isDirty(): boolean;
toModel(): NativeViewModel;

View File

@@ -1,5 +1,6 @@
import { View, Superview, NativeViewModel } from "../ui/view";
import { Stack } from "./layouts";
import { BridgeContext } from "../runtime/global";
export declare class ListItem extends Stack {
/**
* Set to reuse native view
@@ -24,6 +25,8 @@ export declare class List extends Superview {
x: number;
y: number;
}) => void;
scrolledPosition?: number;
scrollToItem(context: BridgeContext, pos: number, animated?: boolean): Promise<any>;
reset(): void;
private getItem;
isDirty(): boolean;

View File

@@ -47,6 +47,9 @@ export class List extends Superview {
return this.cachedViews.values();
}
}
scrollToItem(context, pos, animated) {
return this.nativeChannel(context, 'scrollToItem')({ pos, animated });
}
reset() {
this.cachedViews.clear();
this.itemCount = 0;
@@ -111,6 +114,10 @@ __decorate([
Property,
__metadata("design:type", Function)
], List.prototype, "onScrollEnd", void 0);
__decorate([
Property,
__metadata("design:type", Number)
], List.prototype, "scrolledPosition", void 0);
export function list(config) {
const ret = new List;
for (let key in config) {

View File

@@ -17,6 +17,7 @@
import { View, Property, Superview, NativeViewModel } from "../ui/view";
import { Stack } from "./layouts";
import { layoutConfig } from "../util/layoutconfig";
import { BridgeContext } from "../runtime/global";
export class ListItem extends Stack {
@@ -63,6 +64,13 @@ export class List extends Superview {
@Property
onScrollEnd?: (offset: { x: number, y: number }) => void
@Property
scrolledPosition?: number
scrollToItem(context: BridgeContext, pos: number, animated?: boolean) {
return this.nativeChannel(context, 'scrollToItem')({ pos, animated }) as Promise<any>
}
reset() {
this.cachedViews.clear()
this.itemCount = 0