From 58b78bc0c64fda0748a57f23c088b600b4d473aa Mon Sep 17 00:00:00 2001 From: yangxiang <1223109862@qq.com> Date: Tue, 6 May 2025 17:59:43 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat=EF=BC=9A=E5=BA=9F=E5=BC=83=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/ets/common/utils/WindowUtils.ets | 4 +++- .../main/ets/entryability/EntryAbility.ets | 4 ++++ entry/src/main/ets/view/TopTabView.ets | 2 +- entry/src/main/ets/viewmodel/TabViewModel.ets | 19 +++++++++++-------- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/entry/src/main/ets/common/utils/WindowUtils.ets b/entry/src/main/ets/common/utils/WindowUtils.ets index 51ad53b..2327263 100644 --- a/entry/src/main/ets/common/utils/WindowUtils.ets +++ b/entry/src/main/ets/common/utils/WindowUtils.ets @@ -19,6 +19,8 @@ import { deviceInfo } from '@kit.BasicServicesKit'; const TAG: string = 'WindowUtil'; +const uiContext: UIContext | undefined = AppStorage.get('uiContext'); + export class WindowUtil { private windowStage?: window.WindowStage; private mainWindowClass?: window.Window; @@ -46,7 +48,7 @@ export class WindowUtil { updateWidthBp(): void { let mainWindow: window.WindowProperties = this.mainWindowClass!.getWindowProperties(); let windowWidth: number = mainWindow.windowRect.width; - let windowWidthVp = px2vp(windowWidth); + let windowWidthVp = uiContext!.px2vp(windowWidth); if (deviceInfo.deviceType === '2in1') { windowWidthVp -= 2 * 5.4; } diff --git a/entry/src/main/ets/entryability/EntryAbility.ets b/entry/src/main/ets/entryability/EntryAbility.ets index 71fa9b9..f97adca 100644 --- a/entry/src/main/ets/entryability/EntryAbility.ets +++ b/entry/src/main/ets/entryability/EntryAbility.ets @@ -44,6 +44,10 @@ export default class EntryAbility extends UIAbility { return; } hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.'); + + let uiContext: UIContext | undefined = windowStage.getMainWindowSync().getUIContext() + AppStorage.setOrCreate('uiContext', uiContext); + }); let windowClass: window.Window | undefined = undefined; windowStage.getMainWindow((err: BusinessError, data: window.Window) => { diff --git a/entry/src/main/ets/view/TopTabView.ets b/entry/src/main/ets/view/TopTabView.ets index c1b2558..3f4c41a 100644 --- a/entry/src/main/ets/view/TopTabView.ets +++ b/entry/src/main/ets/view/TopTabView.ets @@ -23,7 +23,7 @@ export struct TopTabView { @State secondLevelIndex: number = 0; @Link firstLevelIndex: number; @Link tabData: TabDataModel; - private firstLevel: string = getContext(this).resourceManager.getStringSync($r('app.string.tab_home').id); + private firstLevel: string = this.getUIContext().getHostContext()!.resourceManager.getStringSync($r('app.string.tab_home').id); build() { Column() { diff --git a/entry/src/main/ets/viewmodel/TabViewModel.ets b/entry/src/main/ets/viewmodel/TabViewModel.ets index 8d78d49..60c4d18 100644 --- a/entry/src/main/ets/viewmodel/TabViewModel.ets +++ b/entry/src/main/ets/viewmodel/TabViewModel.ets @@ -15,20 +15,23 @@ import { TabDataModel } from '../model/TabDataModel'; +const uiContext: UIContext | undefined = AppStorage.get('uiContext'); +let context = uiContext!.getHostContext()!; + export class TabViewModel { private tabMap: TabDataModel; constructor() { let tabMap: Map = new Map(); - tabMap.set(getContext(this).resourceManager.getStringSync($r('app.string.tab_home').id), [ - getContext(this).resourceManager.getStringSync($r('app.string.selected').id), - getContext(this).resourceManager.getStringSync($r('app.string.video').id), - getContext(this).resourceManager.getStringSync($r('app.string.community').id), - getContext(this).resourceManager.getStringSync($r('app.string.news').id) + tabMap.set(context.resourceManager.getStringSync($r('app.string.tab_home').id), [ + context.resourceManager.getStringSync($r('app.string.selected').id), + context.resourceManager.getStringSync($r('app.string.video').id), + context.resourceManager.getStringSync($r('app.string.community').id), + context.resourceManager.getStringSync($r('app.string.news').id) ]); - tabMap.set(getContext(this).resourceManager.getStringSync($r('app.string.tab_moments').id), []); - tabMap.set(getContext(this).resourceManager.getStringSync($r('app.string.tab_shopping').id), []); - tabMap.set(getContext(this).resourceManager.getStringSync($r('app.string.tab_me').id), []); + tabMap.set(context.resourceManager.getStringSync($r('app.string.tab_moments').id), []); + tabMap.set(context.resourceManager.getStringSync($r('app.string.tab_shopping').id), []); + tabMap.set(context.resourceManager.getStringSync($r('app.string.tab_me').id), []); this.tabMap = new TabDataModel(tabMap); } -- Gitee From 3e9330f7ecd98ec877f67911d1a56875268460c0 Mon Sep 17 00:00:00 2001 From: yangxiang <1223109862@qq.com> Date: Thu, 8 May 2025 12:32:55 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat=EF=BC=9A=E5=BA=9F=E5=BC=83=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/common/utils/WindowUtils.ets | 6 ++---- entry/src/main/ets/entryability/EntryAbility.ets | 10 +++++----- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/entry/src/main/ets/common/utils/WindowUtils.ets b/entry/src/main/ets/common/utils/WindowUtils.ets index 2327263..8c9bf00 100644 --- a/entry/src/main/ets/common/utils/WindowUtils.ets +++ b/entry/src/main/ets/common/utils/WindowUtils.ets @@ -19,8 +19,6 @@ import { deviceInfo } from '@kit.BasicServicesKit'; const TAG: string = 'WindowUtil'; -const uiContext: UIContext | undefined = AppStorage.get('uiContext'); - export class WindowUtil { private windowStage?: window.WindowStage; private mainWindowClass?: window.Window; @@ -45,10 +43,10 @@ export class WindowUtil { }); } - updateWidthBp(): void { + updateWidthBp(context: UIContext): void { let mainWindow: window.WindowProperties = this.mainWindowClass!.getWindowProperties(); let windowWidth: number = mainWindow.windowRect.width; - let windowWidthVp = uiContext!.px2vp(windowWidth); + let windowWidthVp = context.px2vp(windowWidth); if (deviceInfo.deviceType === '2in1') { windowWidthVp -= 2 * 5.4; } diff --git a/entry/src/main/ets/entryability/EntryAbility.ets b/entry/src/main/ets/entryability/EntryAbility.ets index f97adca..a361ee5 100644 --- a/entry/src/main/ets/entryability/EntryAbility.ets +++ b/entry/src/main/ets/entryability/EntryAbility.ets @@ -21,8 +21,8 @@ import { BusinessError, deviceInfo } from '@kit.BasicServicesKit'; export default class EntryAbility extends UIAbility { private windowUtil?: WindowUtil = WindowUtil.getInstance(); - private onWindowSizeChange: (windowSize: window.Size) => void = () => { - this.windowUtil!.updateWidthBp(); + private onWindowSizeChange: (windowSize: window.Size, context: UIContext) => void = (_, context) => { + this.windowUtil!.updateWidthBp(context); } onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { @@ -47,7 +47,6 @@ export default class EntryAbility extends UIAbility { let uiContext: UIContext | undefined = windowStage.getMainWindowSync().getUIContext() AppStorage.setOrCreate('uiContext', uiContext); - }); let windowClass: window.Window | undefined = undefined; windowStage.getMainWindow((err: BusinessError, data: window.Window) => { @@ -55,8 +54,9 @@ export default class EntryAbility extends UIAbility { hilog.error(0x0000, 'testTag', 'Failed to get the main window. Cause: %{public}s', JSON.stringify(err) ?? ''); return; } - this.windowUtil!.updateWidthBp(); - data.on('windowSizeChange', this.onWindowSizeChange); + + this.windowUtil!.updateWidthBp(windowStage.getMainWindowSync().getUIContext()); + data.on('windowSizeChange', (windowSize: window.Size) => this.onWindowSizeChange(windowSize, windowStage.getMainWindowSync().getUIContext())); windowClass = data; if (deviceInfo.deviceType === '2in1') { data.setWindowDecorVisible(false); -- Gitee