Nativescript 透明操作栏
Nativescript transparent actionbar
我搜索了 Whosebug 看到这里:https://whosebug.com/search?q=nativescript+transparent+actionbar 但是所有的评论似乎都是针对 Nativescript IOS 透明的 Actionabar。我不想创建自定义 Actionabar 我知道我可以做到;我只想知道如何使常用的 Actionbar 透明,但仍使文本可见。
试试这个,我最初是在 Angular 上写的,但它可以适用于任何风格,你需要相应地调整语法。
HTML
<ActionBar title="Home" class="action-bar" android:backgroundColor="transparent" (loaded)="onActionBarLoaded($event)" (layoutChanged)="onLayoutChanged($event)">
</ActionBar>
<StackLayout class="page" (loaded)="onLoaded($event)" [paddingTop]="fromTop">
<Label class="h2" text="Hello!"></Label>
</StackLayout>
TS
fromTop: number = 0;
onLoaded(event: EventData) {
const layout = <GridLayout>event.object,
page = layout.page;
if (page.android) {
page.android.removeRowAt(0);
}
}
onActionBarLoaded(event: EventData) {
const actionBar = <ActionBar>event.object;
if (actionBar.ios) {
(<any>actionBar).updateFlatness = function (navBar) {
actionBar.ios.setBackgroundImageForBarMetrics(UIImage.new(), UIBarMetrics.Default);
actionBar.ios.translucent = true;
};
}
}
onLayoutChanged(event: EventData) {
const actionBar = <ActionBar>event.object;
if (actionBar.android) {
this.fromTop = layout.toDeviceIndependentPixels(actionBar.getMeasuredHeight());
}
}
使用核心事件绑定语法 - 例如 (loaded)="onLoaded($event)"
将变为 loaded="{{ onLoaded }}"
,您将在视图模型中定义回调。同样对于 属性 绑定,在视图模型中定义 fromTop
并在 XML.
中绑定它
我搜索了 Whosebug 看到这里:https://whosebug.com/search?q=nativescript+transparent+actionbar 但是所有的评论似乎都是针对 Nativescript IOS 透明的 Actionabar。我不想创建自定义 Actionabar 我知道我可以做到;我只想知道如何使常用的 Actionbar 透明,但仍使文本可见。
试试这个,我最初是在 Angular 上写的,但它可以适用于任何风格,你需要相应地调整语法。
HTML
<ActionBar title="Home" class="action-bar" android:backgroundColor="transparent" (loaded)="onActionBarLoaded($event)" (layoutChanged)="onLayoutChanged($event)">
</ActionBar>
<StackLayout class="page" (loaded)="onLoaded($event)" [paddingTop]="fromTop">
<Label class="h2" text="Hello!"></Label>
</StackLayout>
TS
fromTop: number = 0;
onLoaded(event: EventData) {
const layout = <GridLayout>event.object,
page = layout.page;
if (page.android) {
page.android.removeRowAt(0);
}
}
onActionBarLoaded(event: EventData) {
const actionBar = <ActionBar>event.object;
if (actionBar.ios) {
(<any>actionBar).updateFlatness = function (navBar) {
actionBar.ios.setBackgroundImageForBarMetrics(UIImage.new(), UIBarMetrics.Default);
actionBar.ios.translucent = true;
};
}
}
onLayoutChanged(event: EventData) {
const actionBar = <ActionBar>event.object;
if (actionBar.android) {
this.fromTop = layout.toDeviceIndependentPixels(actionBar.getMeasuredHeight());
}
}
使用核心事件绑定语法 - 例如 (loaded)="onLoaded($event)"
将变为 loaded="{{ onLoaded }}"
,您将在视图模型中定义回调。同样对于 属性 绑定,在视图模型中定义 fromTop
并在 XML.