add navbar custom left & right view api

This commit is contained in:
王劲鹏
2020-01-10 15:55:47 +08:00
committed by osborn
parent 54b79e7f1e
commit 848b7005b7
9 changed files with 150 additions and 5 deletions

View File

@@ -1,8 +1,11 @@
import { BridgeContext } from "../runtime/global";
import { Color } from "../util/color";
import { View } from "../ui/view";
export declare function navbar(context: BridgeContext): {
isHidden: () => Promise<boolean>;
setHidden: (hidden: boolean) => Promise<any>;
setTitle: (title: string) => Promise<any>;
setBgColor: (color: Color) => Promise<any>;
setLeft: (view: View) => Promise<any>;
setRight: (view: View) => Promise<any>;
};

View File

@@ -24,5 +24,19 @@ export function navbar(context) {
color: color.toModel(),
});
},
setLeft: (view) => {
if (panel) {
panel.clearHeadViews("navbar_left");
panel.addHeadView("navbar_left", view);
}
return context.navbar.setLeft(view.toModel());
},
setRight: (view) => {
if (panel) {
panel.clearHeadViews("navbar_right");
panel.addHeadView("navbar_right", view);
}
return context.navbar.setRight(view.toModel());
}
};
}

View File

@@ -123,7 +123,12 @@ export class Panel {
if (cur === this.__root__.viewId) {
return this.__root__;
}
return this.headviews.get(cur);
for (let map of this.headviews.values()) {
if (map.has(cur)) {
return map.get(cur);
}
}
return undefined;
}
else {
if (Reflect.has(acc, "subviewById")) {