From 8d5f651e139b2dda982bd12fc5aa44f422b55079 Mon Sep 17 00:00:00 2001 From: Zhang Jinyu Date: Tue, 3 Sep 2024 21:21:11 +0800 Subject: [PATCH] =?UTF-8?q?Navigation/NavDestination=E6=A0=87=E9=A2=98?= =?UTF-8?q?=E6=A0=8F=E5=92=8C=E5=B7=A5=E5=85=B7=E6=A0=8F=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=92=8C=E9=9A=90=E8=97=8F=E5=8A=A8=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Zhang Jinyu Change-Id: I36195e1f7fb97f27ebd3cf0a3c43004c1bb6c413 --- .../interfaces/cj_ffi/cj_navigation_ffi.cpp | 8 ++--- .../interfaces/cj_ffi/cj_navigation_ffi.h | 4 +-- .../ark_component/export/arkComponent.d.ts | 6 ++-- .../ark_component/src/ArkClassDefine.ts | 13 +++++++ .../ark_component/src/ArkNavDestination.ts | 2 +- .../ark_component/src/ArkNavigation.ts | 18 +++++----- .../engine/arkComponent.js | 23 +++++++------ .../arkts_native_nav_destination_bridge.cpp | 4 ++- .../arkts_native_navigation_bridge.cpp | 13 ++++--- .../jsview/js_navdestination.cpp | 4 +-- .../jsview/js_navdestination.h | 2 +- .../jsview/js_navigation.cpp | 8 ++--- .../jsview/js_navigation.h | 4 +-- .../jsview/models/navigation_model_impl.cpp | 14 ++++++-- .../jsview/models/navigation_model_impl.h | 4 +-- .../navigation/nav_bar_layout_property.h | 2 ++ .../pattern/navigation/navigation_model.h | 4 +-- .../navigation/navigation_model_ng.cpp | 34 ++++++++++++++++--- .../pattern/navigation/navigation_model_ng.h | 8 ++--- .../pattern/navrouter/navdestination_model.h | 2 +- .../navrouter/navdestination_model_ng.cpp | 14 ++++++-- .../navrouter/navdestination_model_ng.h | 4 +-- .../core/interfaces/arkoala/arkoala_api.h | 6 ++-- frameworks/core/interfaces/cjui/cjui_api.h | 6 ++-- .../native/node/nav_destination_modifier.cpp | 6 ++-- .../native/node/navigation_modifier.cpp | 12 +++---- 26 files changed, 149 insertions(+), 76 deletions(-) diff --git a/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_navigation_ffi.cpp b/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_navigation_ffi.cpp index ca24e4d9a5f..a96e1fb84b6 100644 --- a/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_navigation_ffi.cpp +++ b/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_navigation_ffi.cpp @@ -114,14 +114,14 @@ void FfiOHOSAceFrameworkNavigationSetToolBarWithBuilder(void (*builder)()) NavigationModel::GetInstance()->SetCustomToolBar(customNode); } -void FfiOHOSAceFrameworkNavigationSetHideToolBar(bool isHide) +void FfiOHOSAceFrameworkNavigationSetHideToolBar(bool isHide, bool animated) { - NavigationModel::GetInstance()->SetHideToolBar(isHide); + NavigationModel::GetInstance()->SetHideToolBar(isHide, animated); } -void FfiOHOSAceFrameworkNavigationSetHideTitleBar(bool isHide) +void FfiOHOSAceFrameworkNavigationSetHideTitleBar(bool isHide, bool animated) { - NavigationModel::GetInstance()->SetHideTitleBar(isHide); + NavigationModel::GetInstance()->SetHideTitleBar(isHide, animated); } void FfiOHOSAceFrameworkNavigationSetHideBackButton(bool isHide) diff --git a/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_navigation_ffi.h b/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_navigation_ffi.h index 2c263bb91ef..68611a9cb13 100644 --- a/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_navigation_ffi.h +++ b/frameworks/bridge/cj_frontend/interfaces/cj_ffi/cj_navigation_ffi.h @@ -32,8 +32,8 @@ CJ_EXPORT void FfiOHOSAceFrameworkNavigationSetMenusWithBuilder(void (*builder)( CJ_EXPORT void FfiOHOSAceFrameworkNavigationSetTitleMode(int32_t titleMode); CJ_EXPORT void FfiOHOSAceFrameworkNavigationSetToolBar(VectorNavigationItemHandle toolBars); CJ_EXPORT void FfiOHOSAceFrameworkNavigationSetToolBarWithBuilder(void (*builder)()); -CJ_EXPORT void FfiOHOSAceFrameworkNavigationSetHideToolBar(bool isHide); -CJ_EXPORT void FfiOHOSAceFrameworkNavigationSetHideTitleBar(bool isHide); +CJ_EXPORT void FfiOHOSAceFrameworkNavigationSetHideToolBar(bool isHide, bool animated); +CJ_EXPORT void FfiOHOSAceFrameworkNavigationSetHideTitleBar(bool isHide, bool animated); CJ_EXPORT void FfiOHOSAceFrameworkNavigationSetHideBackButton(bool isHide); CJ_EXPORT void FfiOHOSAceFrameworkNavigationSetOnTitleModeChanged(void (*callback)(int32_t)); } diff --git a/frameworks/bridge/declarative_frontend/ark_component/export/arkComponent.d.ts b/frameworks/bridge/declarative_frontend/ark_component/export/arkComponent.d.ts index 445aa71d63a..dca45664191 100644 --- a/frameworks/bridge/declarative_frontend/ark_component/export/arkComponent.d.ts +++ b/frameworks/bridge/declarative_frontend/ark_component/export/arkComponent.d.ts @@ -1032,7 +1032,7 @@ declare class ArkCheckboxComponent extends ArkComponent implements CheckboxAttri declare class ArkNavDestinationComponent extends ArkComponent implements NavDestinationAttribute { constructor(nativePtr: KNode, classType?: ModifierType); title(value: any): this; - hideTitleBar(value: boolean): this; + hideTitleBar(value: boolean, animated: boolean): this; onShown(callback: () => void): this; onHidden(callback: () => void): this; onBackPressed(callback: () => boolean): this; @@ -1086,13 +1086,13 @@ declare class ArkNavigationComponent extends ArkComponent implements NavigationA hideNavBar(value: boolean): NavigationAttribute; title(value: any): NavigationAttribute; subTitle(value: string): NavigationAttribute; - hideTitleBar(value: boolean): NavigationAttribute; + hideTitleBar(value: boolean, animated: boolean): NavigationAttribute; hideBackButton(value: boolean): NavigationAttribute; titleMode(value: NavigationTitleMode): NavigationAttribute; menus(value: any): NavigationAttribute; toolBar(value: any): NavigationAttribute; toolbarConfiguration(value: any): NavigationAttribute; - hideToolBar(value: boolean): NavigationAttribute; + hideToolBar(value: boolean, animated: boolean): NavigationAttribute; onTitleModeChange(callback: (titleMode: NavigationTitleMode) => void): NavigationAttribute; onNavBarStateChange(callback: (isVisible: boolean) => void): NavigationAttribute; onNavigationModeChange(callback: (mode: NavigationMode) => void): NavigationAttribute; diff --git a/frameworks/bridge/declarative_frontend/ark_component/src/ArkClassDefine.ts b/frameworks/bridge/declarative_frontend/ark_component/src/ArkClassDefine.ts index 60ae3ef1358..93d75af8c70 100644 --- a/frameworks/bridge/declarative_frontend/ark_component/src/ArkClassDefine.ts +++ b/frameworks/bridge/declarative_frontend/ark_component/src/ArkClassDefine.ts @@ -1270,6 +1270,19 @@ class ArkSymbolEffect { } } +class ArkNavigatorHideOption { + hide: boolean; + animated: boolean; + + constructor() { + this.hide = undefined; + this.animated = undefined; + } + isEqual(another: ArkNavigatorHideOption): boolean { + return (this.hide == another.hide) && (this.animated == another.animated); + } +} + class ArkTextBackGroundStyle { color: ResourceColor; radius: Dimension | BorderRadiuses; diff --git a/frameworks/bridge/declarative_frontend/ark_component/src/ArkNavDestination.ts b/frameworks/bridge/declarative_frontend/ark_component/src/ArkNavDestination.ts index 8e9fa7a03be..bff7edbc700 100644 --- a/frameworks/bridge/declarative_frontend/ark_component/src/ArkNavDestination.ts +++ b/frameworks/bridge/declarative_frontend/ark_component/src/ArkNavDestination.ts @@ -25,7 +25,7 @@ class ArkNavDestinationComponent extends ArkComponent implements NavDestinationA title(value: any): this { throw new Error('Method not implemented.'); } - hideTitleBar(value: boolean): this { + hideTitleBar(value: boolean, animated: boolean): this { modifierWithKey(this._modifiersWithKeys, HideTitleBarModifier.identity, HideTitleBarModifier, value); return this; } diff --git a/frameworks/bridge/declarative_frontend/ark_component/src/ArkNavigation.ts b/frameworks/bridge/declarative_frontend/ark_component/src/ArkNavigation.ts index 8edbc8b7c6a..3a58a39f128 100644 --- a/frameworks/bridge/declarative_frontend/ark_component/src/ArkNavigation.ts +++ b/frameworks/bridge/declarative_frontend/ark_component/src/ArkNavigation.ts @@ -66,8 +66,9 @@ class ArkNavigationComponent extends ArkComponent implements NavigationAttribute modifierWithKey(this._modifiersWithKeys, SubTitleModifier.identity, SubTitleModifier, value); return this; } - hideTitleBar(value: boolean): NavigationAttribute { - modifierWithKey(this._modifiersWithKeys, NavigationHideTitleBarModifier.identity, NavigationHideTitleBarModifier, value); + hideTitleBar(value: boolean, animated: boolean): NavigationAttribute { + let option = ArkNavigatorHideOption(value, animated); + modifierWithKey(this._modifiersWithKeys, NavigationHideTitleBarModifier.identity, NavigationHideTitleBarModifier, option); return this; } hideBackButton(value: boolean): NavigationAttribute { @@ -87,8 +88,9 @@ class ArkNavigationComponent extends ArkComponent implements NavigationAttribute toolbarConfiguration(value: any): NavigationAttribute { throw new Error('Method not implemented.'); } - hideToolBar(value: boolean): NavigationAttribute { - modifierWithKey(this._modifiersWithKeys, HideToolBarModifier.identity, HideToolBarModifier, value); + hideToolBar(value: boolean, animated: boolean): NavigationAttribute { + let option = ArkNavigatorHideOption(value, animated); + modifierWithKey(this._modifiersWithKeys, HideToolBarModifier.identity, HideToolBarModifier, option); return this; } onTitleModeChange(callback: (titleMode: NavigationTitleMode) => void): NavigationAttribute { @@ -251,7 +253,7 @@ class ModeModifier extends ModifierWithKey { } class HideToolBarModifier extends ModifierWithKey { - constructor(value: boolean) { + constructor(value: ArkNavigatorHideOption | undefined) { super(value); } static identity: Symbol = Symbol('hideToolBar'); @@ -260,7 +262,7 @@ class HideToolBarModifier extends ModifierWithKey { if (reset) { getUINativeModule().navigation.resetHideToolBar(node); } else { - getUINativeModule().navigation.setHideToolBar(node, this.value); + getUINativeModule().navigation.setHideToolBar(node, this.value.hide, this.value.animated); } } } @@ -311,7 +313,7 @@ class SubTitleModifier extends ModifierWithKey { } class NavigationHideTitleBarModifier extends ModifierWithKey { - constructor(value: boolean) { + constructor(value: ArkNavigatorHideOption | undefined) { super(value); } static identity: Symbol = Symbol('hideTitleBar'); @@ -320,7 +322,7 @@ class NavigationHideTitleBarModifier extends ModifierWithKey { if (reset) { getUINativeModule().navigation.resetHideTitleBar(node); } else { - getUINativeModule().navigation.setHideTitleBar(node, this.value); + getUINativeModule().navigation.setHideTitleBar(node, this.value.hide, this.value.animated); } } } diff --git a/frameworks/bridge/declarative_frontend/engine/arkComponent.js b/frameworks/bridge/declarative_frontend/engine/arkComponent.js index 9b909c98383..26d3f692ab5 100644 --- a/frameworks/bridge/declarative_frontend/engine/arkComponent.js +++ b/frameworks/bridge/declarative_frontend/engine/arkComponent.js @@ -19854,8 +19854,9 @@ class ArkNavDestinationComponent extends ArkComponent { title(value) { throw new Error('Method not implemented.'); } - hideTitleBar(value) { - modifierWithKey(this._modifiersWithKeys, HideTitleBarModifier.identity, HideTitleBarModifier, value); + hideTitleBar(value, animated) { + let option = ArkNavigatorHideOption(value, animated); + modifierWithKey(this._modifiersWithKeys, HideTitleBarModifier.identity, HideTitleBarModifier, option); return this; } backButtonIcon(value) { @@ -19931,7 +19932,7 @@ class HideTitleBarModifier extends ModifierWithKey { getUINativeModule().navDestination.resetHideTitleBar(node); } else { - getUINativeModule().navDestination.setHideTitleBar(node, this.value); + getUINativeModule().navDestination.setHideTitleBar(node, this.value.hide, this.value.animated); } } } @@ -20585,8 +20586,9 @@ class ArkNavigationComponent extends ArkComponent { modifierWithKey(this._modifiersWithKeys, SubTitleModifier.identity, SubTitleModifier, value); return this; } - hideTitleBar(value) { - modifierWithKey(this._modifiersWithKeys, NavigationHideTitleBarModifier.identity, NavigationHideTitleBarModifier, value); + hideTitleBar(value, animated) { + let option = ArkNavigatorHideOption(value, animated); + modifierWithKey(this._modifiersWithKeys, NavigationHideTitleBarModifier.identity, NavigationHideTitleBarModifier, option); return this; } hideBackButton(value) { @@ -20606,8 +20608,9 @@ class ArkNavigationComponent extends ArkComponent { toolbarConfiguration(value) { throw new Error('Method not implemented.'); } - hideToolBar(value) { - modifierWithKey(this._modifiersWithKeys, HideToolBarModifier.identity, HideToolBarModifier, value); + hideToolBar(value, animated) { + let option = ArkNavigatorHideOption(value, animated); + modifierWithKey(this._modifiersWithKeys, HideToolBarModifier.identity, HideToolBarModifier, option); return this; } onTitleModeChange(callback) { @@ -20800,7 +20803,7 @@ class HideToolBarModifier extends ModifierWithKey { getUINativeModule().navigation.resetHideToolBar(node); } else { - getUINativeModule().navigation.setHideToolBar(node, this.value); + getUINativeModule().navigation.setHideToolBar(node, this.value.hide, this.value.animated); } } } @@ -20856,7 +20859,7 @@ class NavigationHideTitleBarModifier extends ModifierWithKey { getUINativeModule().navigation.resetHideTitleBar(node); } else { - getUINativeModule().navigation.setHideTitleBar(node, this.value); + getUINativeModule().navigation.setHideTitleBar(node, this.value.hide, this.value.animated); } } } @@ -27693,7 +27696,7 @@ class TabsHideTitleBarModifier extends ModifierWithKey { getUINativeModule().tabs.resetHideTitleBar(node); } else { - getUINativeModule().tabs.setHideTitleBar(node, this.value); + getUINativeModule().tabs.setHideTitleBar(node, this.value.hide, this.value.animated); } } } diff --git a/frameworks/bridge/declarative_frontend/engine/jsi/nativeModule/arkts_native_nav_destination_bridge.cpp b/frameworks/bridge/declarative_frontend/engine/jsi/nativeModule/arkts_native_nav_destination_bridge.cpp index bd295279772..92677fed1d7 100644 --- a/frameworks/bridge/declarative_frontend/engine/jsi/nativeModule/arkts_native_nav_destination_bridge.cpp +++ b/frameworks/bridge/declarative_frontend/engine/jsi/nativeModule/arkts_native_nav_destination_bridge.cpp @@ -26,13 +26,15 @@ ArkUINativeModuleValue NavDestinationBridge::SetHideTitleBar(ArkUIRuntimeCallInf CHECK_NULL_RETURN(vm, panda::NativePointerRef::New(vm, nullptr)); Local nodeArg = runtimeCallInfo->GetCallArgRef(0); Local hideArg = runtimeCallInfo->GetCallArgRef(1); + Local animatedArg = runtimeCallInfo->GetCallArgRef(2); auto nativeNode = nodePtr(nodeArg->ToNativePointer(vm)->Value()); if (hideArg->IsUndefined() || !hideArg->IsBoolean()) { GetArkUINodeModifiers()->getNavDestinationModifier()->resetHideTitleBar(nativeNode); return panda::JSValueRef::Undefined(vm); } bool hide = hideArg->ToBoolean(vm)->Value(); - GetArkUINodeModifiers()->getNavDestinationModifier()->setHideTitleBar(nativeNode, hide); + bool animated = animatedArg->ToBoolean(vm)->Value(); + GetArkUINodeModifiers()->getNavDestinationModifier()->setHideTitleBar(nativeNode, hide, animated); return panda::JSValueRef::Undefined(vm); } diff --git a/frameworks/bridge/declarative_frontend/engine/jsi/nativeModule/arkts_native_navigation_bridge.cpp b/frameworks/bridge/declarative_frontend/engine/jsi/nativeModule/arkts_native_navigation_bridge.cpp index 20841448c51..6c1986546bd 100644 --- a/frameworks/bridge/declarative_frontend/engine/jsi/nativeModule/arkts_native_navigation_bridge.cpp +++ b/frameworks/bridge/declarative_frontend/engine/jsi/nativeModule/arkts_native_navigation_bridge.cpp @@ -30,12 +30,15 @@ ArkUINativeModuleValue NavigationBridge::SetHideToolBar(ArkUIRuntimeCallInfo* ru CHECK_NULL_RETURN(vm, panda::NativePointerRef::New(vm, nullptr)); Local nodeArg = runtimeCallInfo->GetCallArgRef(0); Local hideArg = runtimeCallInfo->GetCallArgRef(1); + Local animatedArg = runtimeCallInfo->GetCallArgRef(2); auto nativeNode = nodePtr(nodeArg->ToNativePointer(vm)->Value()); - if (hideArg->IsNull() || hideArg->IsUndefined() || !hideArg->IsBoolean()) { + if (hideArg->IsNull() || hideArg->IsUndefined() || !hideArg->IsBoolean() || + animatedArg->IsNull() || animatedArg->IsUndefined() || !animatedArg->IsBoolean()) { GetArkUINodeModifiers()->getNavigationModifier()->resetHideToolBar(nativeNode); } else { bool hide = hideArg->ToBoolean(vm)->Value(); - GetArkUINodeModifiers()->getNavigationModifier()->setHideToolBar(nativeNode, hide); + bool animated = animatedArg->ToBoolean(vm)->Value(); + GetArkUINodeModifiers()->getNavigationModifier()->setHideToolBar(nativeNode, hide, animated); } return panda::JSValueRef::Undefined(vm); } @@ -187,10 +190,12 @@ ArkUINativeModuleValue NavigationBridge::SetHideTitleBar(ArkUIRuntimeCallInfo* r CHECK_NULL_RETURN(vm, panda::NativePointerRef::New(vm, nullptr)); Local nodeArg = runtimeCallInfo->GetCallArgRef(0); Local hideArg = runtimeCallInfo->GetCallArgRef(1); + Local animatedArg = runtimeCallInfo->GetCallArgRef(2); auto nativeNode = nodePtr(nodeArg->ToNativePointer(vm)->Value()); - if (hideArg->IsBoolean()) { + if (hideArg->IsBoolean() && animatedArg->IsBoolean()) { bool hide = hideArg->ToBoolean(vm)->Value(); - GetArkUINodeModifiers()->getNavigationModifier()->setNavHideTitleBar(nativeNode, hide); + bool animated = animatedArg->ToBoolean(vm)->Value(); + GetArkUINodeModifiers()->getNavigationModifier()->setNavHideTitleBar(nativeNode, hide, animated); } else { GetArkUINodeModifiers()->getNavigationModifier()->resetNavHideTitleBar(nativeNode); } diff --git a/frameworks/bridge/declarative_frontend/jsview/js_navdestination.cpp b/frameworks/bridge/declarative_frontend/jsview/js_navdestination.cpp index ca48c62dce4..6e5895780fd 100644 --- a/frameworks/bridge/declarative_frontend/jsview/js_navdestination.cpp +++ b/frameworks/bridge/declarative_frontend/jsview/js_navdestination.cpp @@ -148,9 +148,9 @@ void JSNavDestination::Create(const JSCallbackInfo& info) } } -void JSNavDestination::SetHideTitleBar(bool hide) +void JSNavDestination::SetHideTitleBar(bool hide, bool animated) { - NavDestinationModel::GetInstance()->SetHideTitleBar(hide); + NavDestinationModel::GetInstance()->SetHideTitleBar(hide, animated); } void JSNavDestination::SetTitle(const JSCallbackInfo& info) diff --git a/frameworks/bridge/declarative_frontend/jsview/js_navdestination.h b/frameworks/bridge/declarative_frontend/jsview/js_navdestination.h index e03c8a40561..b67b70ef764 100644 --- a/frameworks/bridge/declarative_frontend/jsview/js_navdestination.h +++ b/frameworks/bridge/declarative_frontend/jsview/js_navdestination.h @@ -25,7 +25,7 @@ class JSNavDestination : public JSContainerBase { public: static void Create(); static void Create(const JSCallbackInfo& info); - static void SetHideTitleBar(bool hide); + static void SetHideTitleBar(bool hide, bool animated); static void SetTitle(const JSCallbackInfo& info); static void SetBackButtonIcon(const JSCallbackInfo& info); static void SetOnShown(const JSCallbackInfo& info); diff --git a/frameworks/bridge/declarative_frontend/jsview/js_navigation.cpp b/frameworks/bridge/declarative_frontend/jsview/js_navigation.cpp index d5873131178..51384573310 100644 --- a/frameworks/bridge/declarative_frontend/jsview/js_navigation.cpp +++ b/frameworks/bridge/declarative_frontend/jsview/js_navigation.cpp @@ -482,9 +482,9 @@ void JSNavigation::SetSubTitle(const std::string& subTitle) NavigationModel::GetInstance()->SetSubtitle(subTitle); } -void JSNavigation::SetHideTitleBar(bool hide) +void JSNavigation::SetHideTitleBar(bool hide, bool animated) { - NavigationModel::GetInstance()->SetHideTitleBar(hide); + NavigationModel::GetInstance()->SetHideTitleBar(hide, animated); } void JSNavigation::SetHideNavBar(bool hide) @@ -531,9 +531,9 @@ void JSNavigation::SetHideBackButton(bool hide) NavigationModel::GetInstance()->SetHideBackButton(hide); } -void JSNavigation::SetHideToolBar(bool hide) +void JSNavigation::SetHideToolBar(bool hide, bool animated) { - NavigationModel::GetInstance()->SetHideToolBar(hide); + NavigationModel::GetInstance()->SetHideToolBar(hide, animated); } void JSNavigation::SetToolBar(const JSCallbackInfo& info) diff --git a/frameworks/bridge/declarative_frontend/jsview/js_navigation.h b/frameworks/bridge/declarative_frontend/jsview/js_navigation.h index 96559e7e5fd..20cc659b5f6 100644 --- a/frameworks/bridge/declarative_frontend/jsview/js_navigation.h +++ b/frameworks/bridge/declarative_frontend/jsview/js_navigation.h @@ -30,9 +30,9 @@ public: static void SetTitleMode(int32_t value); static void SetTitle(const JSCallbackInfo& info); static void SetSubTitle(const std::string& subTitle); - static void SetHideTitleBar(bool hide); + static void SetHideTitleBar(bool hide, bool animated); static void SetHideBackButton(bool hide); - static void SetHideToolBar(bool hide); + static void SetHideToolBar(bool hide, bool animated); static void SetToolBar(const JSCallbackInfo& info); static void SetToolbarConfiguration(const JSCallbackInfo& info); static void SetMenus(const JSCallbackInfo& info); diff --git a/frameworks/bridge/declarative_frontend/jsview/models/navigation_model_impl.cpp b/frameworks/bridge/declarative_frontend/jsview/models/navigation_model_impl.cpp index cdd69adc1a1..8ddf6e64d1f 100644 --- a/frameworks/bridge/declarative_frontend/jsview/models/navigation_model_impl.cpp +++ b/frameworks/bridge/declarative_frontend/jsview/models/navigation_model_impl.cpp @@ -79,8 +79,13 @@ void NavigationModelImpl::SetSubtitle(const std::string& subtitle) navigationContainer->GetDeclaration()->subTitle = subtitle; } -void NavigationModelImpl::SetHideTitleBar(bool hideTitleBar) +void NavigationModelImpl::SetHideTitleBar(bool hideTitleBar, bool animated) { + if (animated) { + LOGE("aaaaaaa: animated"); + } else { + LOGE("aaaaaaa: animated = false"); + } auto component = ViewStackProcessor::GetInstance()->GetMainComponent(); auto navigationContainer = AceType::DynamicCast(component); if (!navigationContainer) { @@ -115,8 +120,13 @@ void NavigationModelImpl::SetHideBackButton(bool hideBackButton) navigationContainer->GetDeclaration()->hideBarBackButton = hideBackButton; } -void NavigationModelImpl::SetHideToolBar(bool hideToolBar) +void NavigationModelImpl::SetHideToolBar(bool hideToolBar, bool animated) { + if (animated) { + LOGE("aaaaaaa: animated"); + } else { + LOGE("aaaaaaa: animated = false"); + } auto component = ViewStackProcessor::GetInstance()->GetMainComponent(); auto navigationContainer = AceType::DynamicCast(component); if (!navigationContainer) { diff --git a/frameworks/bridge/declarative_frontend/jsview/models/navigation_model_impl.h b/frameworks/bridge/declarative_frontend/jsview/models/navigation_model_impl.h index d7ef3de69ef..202f444e42a 100644 --- a/frameworks/bridge/declarative_frontend/jsview/models/navigation_model_impl.h +++ b/frameworks/bridge/declarative_frontend/jsview/models/navigation_model_impl.h @@ -30,13 +30,13 @@ public: void SetTitleHeight(const Dimension& height, bool isValid = true) override; void SetTitleMode(NG::NavigationTitleMode mode) override; void SetSubtitle(const std::string& subtitle) override; - void SetHideTitleBar(bool hideTitleBar) override; + void SetHideTitleBar(bool hideTitleBar, bool animated) override; void SetHideNavBar(bool hideNavBar) override; void SetBackButtonIcon(const std::function)>& symbolApply, const std::string& src, const NG::ImageOption& imageOption, RefPtr& pixMap, const std::vector& nameList) override; void SetHideBackButton(bool hideBackButton) override; - void SetHideToolBar(bool hideToolBar) override; + void SetHideToolBar(bool hideToolBar, bool animated) override; void SetCustomToolBar(const RefPtr& customToolBar) override; bool NeedSetItems() override; void SetToolBarItems(std::vector&& toolBarItems) override; diff --git a/frameworks/core/components_ng/pattern/navigation/nav_bar_layout_property.h b/frameworks/core/components_ng/pattern/navigation/nav_bar_layout_property.h index 8587d06a18c..974cc9f1f6f 100644 --- a/frameworks/core/components_ng/pattern/navigation/nav_bar_layout_property.h +++ b/frameworks/core/components_ng/pattern/navigation/nav_bar_layout_property.h @@ -97,7 +97,9 @@ public: } ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(TitleMode, NavigationTitleMode, PROPERTY_UPDATE_MEASURE); ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(HideTitleBar, bool, PROPERTY_UPDATE_MEASURE); + ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(HideTitleBarAnimation, bool, PROPERTY_UPDATE_MEASURE); ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(HideToolBar, bool, PROPERTY_UPDATE_MEASURE); + ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(HideToolBarAnimation, bool, PROPERTY_UPDATE_MEASURE); ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(HideBackButton, bool, PROPERTY_UPDATE_MEASURE); ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IgnoreLayoutSafeArea, SafeAreaExpandOpts, PROPERTY_UPDATE_MEASURE); }; diff --git a/frameworks/core/components_ng/pattern/navigation/navigation_model.h b/frameworks/core/components_ng/pattern/navigation/navigation_model.h index ddf7372d3fa..ca1c54cf3a5 100644 --- a/frameworks/core/components_ng/pattern/navigation/navigation_model.h +++ b/frameworks/core/components_ng/pattern/navigation/navigation_model.h @@ -55,13 +55,13 @@ public: virtual void SetTitleHeight(const Dimension& height, bool isValid = true) = 0; virtual void SetTitleMode(NG::NavigationTitleMode mode) = 0; virtual void SetSubtitle(const std::string& subtitle) = 0; - virtual void SetHideTitleBar(bool hideTitleBar) = 0; + virtual void SetHideTitleBar(bool hideTitleBar, bool animated) = 0; virtual void SetHideNavBar(bool hideNavBar) = 0; virtual void SetBackButtonIcon(const std::function)>& symbolApply, const std::string& src, const NG::ImageOption& imageOption, RefPtr& pixMap, const std::vector& nameList); virtual void SetHideBackButton(bool hideBackButton) = 0; - virtual void SetHideToolBar(bool hideToolBar) = 0; + virtual void SetHideToolBar(bool hideToolBar, bool animated) = 0; virtual void SetCustomToolBar(const RefPtr& customNode) = 0; virtual bool NeedSetItems() = 0; virtual void SetToolBarItems(std::vector&& toolBarItems) = 0; diff --git a/frameworks/core/components_ng/pattern/navigation/navigation_model_ng.cpp b/frameworks/core/components_ng/pattern/navigation/navigation_model_ng.cpp index c4571f7f5f1..b19f71f13e0 100644 --- a/frameworks/core/components_ng/pattern/navigation/navigation_model_ng.cpp +++ b/frameworks/core/components_ng/pattern/navigation/navigation_model_ng.cpp @@ -1112,7 +1112,7 @@ void NavigationModelNG::SetSubtitle(const std::string& subtitle) ParseCommonTitle(true, false, subtitle, "", true); } -void NavigationModelNG::SetHideTitleBar(bool hideTitleBar) +void NavigationModelNG::SetHideTitleBar(bool hideTitleBar, bool animated) { auto frameNode = ViewStackProcessor::GetInstance()->GetMainFrameNode(); auto navigationGroupNode = AceType::DynamicCast(frameNode); @@ -1122,6 +1122,7 @@ void NavigationModelNG::SetHideTitleBar(bool hideTitleBar) auto navBarLayoutProperty = navBarNode->GetLayoutProperty(); CHECK_NULL_VOID(navBarLayoutProperty); navBarLayoutProperty->UpdateHideTitleBar(hideTitleBar); + navBarLayoutProperty->UpdateHideTitleBarAnimation(animated); } void NavigationModelNG::SetHideNavBar(bool hideNavBar) @@ -1175,7 +1176,7 @@ void NavigationModelNG::SetHideBackButton(bool hideBackButton) navBarLayoutProperty->UpdateHideBackButton(hideBackButton); } -void NavigationModelNG::SetHideToolBar(bool hideToolBar) +void NavigationModelNG::SetHideToolBar(bool hideToolBar, bool animated) { auto frameNode = ViewStackProcessor::GetInstance()->GetMainFrameNode(); auto navigationGroupNode = AceType::DynamicCast(frameNode); @@ -1185,6 +1186,21 @@ void NavigationModelNG::SetHideToolBar(bool hideToolBar) auto navBarLayoutProperty = navBarNode->GetLayoutPropertyPtr(); CHECK_NULL_VOID(navBarLayoutProperty); navBarLayoutProperty->UpdateHideToolBar(hideToolBar); + navBarLayoutProperty->UpdateHideToolBarAnimation(animated); + // if (animated) { + // LOGE("gzs1: animated"); + // AnimationOption option; + // option.SetDuration(5000); + // option.SetCurve(Curves::FAST_OUT_SLOW_IN); + // AnimationUtils::Animate(option, [navBarLayoutProperty, navBarNode, hideToolBar, animated]() { + // // auto navBarLayoutProperty = weak.Upgrade(); + // navBarLayoutProperty->UpdateHideToolBar(hideToolBar); + // navBarNode->GetContext()->FlushUITasks(); + // }); + // } else { + // LOGE("gzs: animated = false"); + // navBarLayoutProperty->UpdateHideToolBar(hideToolBar); + // } } void NavigationModelNG::SetCustomToolBar(const RefPtr& customNode) @@ -1597,8 +1613,13 @@ void NavigationModelNG::SetMenuCount(int32_t menuCount) return; } -void NavigationModelNG::SetHideToolBar(FrameNode* frameNode, bool hideToolBar) +void NavigationModelNG::SetHideToolBar(FrameNode* frameNode, bool hideToolBar, bool animated) { + if (animated) { + LOGE("aaaaaaa: animated"); + } else { + LOGE("aaaaaaa: animated = false"); + } CHECK_NULL_VOID(frameNode); auto navigationGroupNode = AceType::DynamicCast(frameNode); CHECK_NULL_VOID(navigationGroupNode); @@ -1720,8 +1741,13 @@ void NavigationModelNG::SetHideNavBar(FrameNode* frameNode, bool hideNavBar) SetHideNavBarInner(navigationGroupNode, hideNavBar); } -void NavigationModelNG::SetHideTitleBar(FrameNode* frameNode, bool hideTitleBar) +void NavigationModelNG::SetHideTitleBar(FrameNode* frameNode, bool hideTitleBar, bool animated) { + if (animated) { + LOGE("aaaaaaa: animated"); + } else { + LOGE("aaaaaaa: animated = false"); + } CHECK_NULL_VOID(frameNode); auto navigationGroupNode = AceType::DynamicCast(frameNode); CHECK_NULL_VOID(navigationGroupNode); diff --git a/frameworks/core/components_ng/pattern/navigation/navigation_model_ng.h b/frameworks/core/components_ng/pattern/navigation/navigation_model_ng.h index 86699ef1150..b9fa67544fc 100644 --- a/frameworks/core/components_ng/pattern/navigation/navigation_model_ng.h +++ b/frameworks/core/components_ng/pattern/navigation/navigation_model_ng.h @@ -39,12 +39,12 @@ public: void SetTitleHeight(const Dimension& height, bool isValid = true) override; void SetTitleMode(NG::NavigationTitleMode mode) override; void SetSubtitle(const std::string& subtitle) override; - void SetHideTitleBar(bool hideTitleBar) override; + void SetHideTitleBar(bool hideTitleBar, bool animated) override; void SetHideNavBar(bool hideNavBar) override; void SetBackButtonIcon(const std::function)>& symbolApply, const std::string& src, const ImageOption& imageOption, RefPtr& pixMap, const std::vector& nameList) override; void SetHideBackButton(bool hideBackButton) override; - void SetHideToolBar(bool hideToolBar) override; + void SetHideToolBar(bool hideToolBar, bool animated) override; void SetCustomToolBar(const RefPtr& customNode) override; bool NeedSetItems() override; @@ -71,7 +71,7 @@ public: void SetIsCustomAnimation(bool isCustom) override; static RefPtr CreateFrameNode(int32_t nodeId); static void SetNavigationStack(FrameNode* frameNode); - static void SetHideToolBar(FrameNode* frameNode, bool hideToolBar); + static void SetHideToolBar(FrameNode* frameNode, bool hideToolBar, bool animated); static void SetMinContentWidth(FrameNode* frameNode, const Dimension& value); static void SetMinNavBarWidth(FrameNode* frameNode, const Dimension& value); static void SetMaxNavBarWidth(FrameNode* frameNode, const Dimension& value); @@ -81,7 +81,7 @@ public: static void SetBackButtonIcon(FrameNode* frameNode, const std::function)>& symbolApply, const std::string& src, const ImageOption& imageOption, RefPtr& pixMap); static void SetHideNavBar(FrameNode* frameNode, bool hideNavBar); - static void SetHideTitleBar(FrameNode* frameNode, bool hideTitleBar); + static void SetHideTitleBar(FrameNode* frameNode, bool hideTitleBar, bool animated); static void SetSubtitle(FrameNode* frameNode, const std::string& subtitle); static void SetHideBackButton(FrameNode* frameNode, bool hideBackButton); static void SetTitleMode(FrameNode* frameNode, NG::NavigationTitleMode mode); diff --git a/frameworks/core/components_ng/pattern/navrouter/navdestination_model.h b/frameworks/core/components_ng/pattern/navrouter/navdestination_model.h index 294f1df681d..7e889797599 100644 --- a/frameworks/core/components_ng/pattern/navrouter/navdestination_model.h +++ b/frameworks/core/components_ng/pattern/navrouter/navdestination_model.h @@ -32,7 +32,7 @@ public: virtual void Create() = 0; virtual void Create( std::function&& deepRenderFunc, RefPtr context = nullptr) = 0; - virtual void SetHideTitleBar(bool hideTitleBar) = 0; + virtual void SetHideTitleBar(bool hideTitleBar, bool animated) = 0; virtual void SetTitle(const std::string& title, bool hasSubTitle) = 0; virtual void SetTitlebarOptions(NG::NavigationTitlebarOptions&& opt) {}; virtual void SetBackButtonIcon(const std::function)>& iconSymbol, diff --git a/frameworks/core/components_ng/pattern/navrouter/navdestination_model_ng.cpp b/frameworks/core/components_ng/pattern/navrouter/navdestination_model_ng.cpp index 41458df82f6..c8acebfb589 100644 --- a/frameworks/core/components_ng/pattern/navrouter/navdestination_model_ng.cpp +++ b/frameworks/core/components_ng/pattern/navrouter/navdestination_model_ng.cpp @@ -344,8 +344,13 @@ void NavDestinationModelNG::Create(std::function&& deepRenderFunc, RefPt stack->Push(navDestinationNode); } -void NavDestinationModelNG::SetHideTitleBar(bool hideTitleBar) +void NavDestinationModelNG::SetHideTitleBar(bool hideTitleBar, bool animated) { + if (animated) { + LOGE("aaaaaaa: animated"); + } else { + LOGE("aaaaaaa: animated = false"); + } ACE_UPDATE_LAYOUT_PROPERTY(NavDestinationLayoutProperty, HideTitleBar, hideTitleBar); } @@ -493,8 +498,13 @@ RefPtr NavDestinationModelNG::CreateEmpty() return uiNode; } -void NavDestinationModelNG::SetHideTitleBar(FrameNode* frameNode, bool hideTitleBar) +void NavDestinationModelNG::SetHideTitleBar(FrameNode* frameNode, bool hideTitleBar, bool animated) { + if (animated) { + LOGE("aaaaaaa: animated"); + } else { + LOGE("aaaaaaa: animated = false"); + } ACE_UPDATE_NODE_LAYOUT_PROPERTY(NavDestinationLayoutProperty, HideTitleBar, hideTitleBar, frameNode); } diff --git a/frameworks/core/components_ng/pattern/navrouter/navdestination_model_ng.h b/frameworks/core/components_ng/pattern/navrouter/navdestination_model_ng.h index 441a9bd9753..d1407f0831b 100644 --- a/frameworks/core/components_ng/pattern/navrouter/navdestination_model_ng.h +++ b/frameworks/core/components_ng/pattern/navrouter/navdestination_model_ng.h @@ -24,7 +24,7 @@ class ACE_EXPORT NavDestinationModelNG : public OHOS::Ace::NavDestinationModel { public: void Create() override; void Create(std::function&& deepRenderFunc, RefPtr context = nullptr) override; - void SetHideTitleBar(bool hideTitleBar) override; + void SetHideTitleBar(bool hideTitleBar, bool animated) override; void SetTitle(const std::string& title, bool hasSubTitle) override; void SetTitlebarOptions(NG::NavigationTitlebarOptions&& opt) override; void SetBackButtonIcon(const std::function)>& iconSymbol, const std::string& src, @@ -41,7 +41,7 @@ public: void SetOnBackPressed(std::function&& onBackPressed) override; void SetOnReady(std::function)>&& onReady) override; RefPtr CreateEmpty() override; - static void SetHideTitleBar(FrameNode* frameNode, bool hideTitleBar); + static void SetHideTitleBar(FrameNode* frameNode, bool hideTitleBar, bool animated); static void SetBackgroundColor(FrameNode* frameNode, const Color& color, bool isVaild = true); static void SetBackButtonIcon(FrameNode* frameNode, const std::string& src, bool noPixMap, RefPtr& pixMap); diff --git a/frameworks/core/interfaces/arkoala/arkoala_api.h b/frameworks/core/interfaces/arkoala/arkoala_api.h index 6c16577abcd..49575479d5a 100644 --- a/frameworks/core/interfaces/arkoala/arkoala_api.h +++ b/frameworks/core/interfaces/arkoala/arkoala_api.h @@ -2968,7 +2968,7 @@ struct ArkUIPluginModifier { }; struct ArkUINavDestinationModifier { - void (*setHideTitleBar)(ArkUINodeHandle node, ArkUI_Bool hideTitle); + void (*setHideTitleBar)(ArkUINodeHandle node, ArkUI_Bool hideTitle, ArkUI_Bool animated); void (*resetHideTitleBar)(ArkUINodeHandle node); void (*setNavDestinationMode)(ArkUINodeHandle node, ArkUI_Int32 value); void (*resetNavDestinationMode)(ArkUINodeHandle node); @@ -3575,7 +3575,7 @@ struct ArkUIToggleModifier { }; struct ArkUINavigationModifier { - void (*setHideToolBar)(ArkUINodeHandle node, ArkUI_Bool hide); + void (*setHideToolBar)(ArkUINodeHandle node, ArkUI_Bool hide, ArkUI_Bool animated); void (*resetHideToolBar)(ArkUINodeHandle node); void (*setHideNavBar)(ArkUINodeHandle node, ArkUI_Bool hideNavBar); void (*resetHideNavBar)(ArkUINodeHandle node); @@ -3587,7 +3587,7 @@ struct ArkUINavigationModifier { void (*resetSubtitle)(ArkUINodeHandle node); void (*resetUsrNavigationMode)(ArkUINodeHandle node); void (*setUsrNavigationMode)(ArkUINodeHandle node, ArkUI_Int32 value); - void (*setNavHideTitleBar)(ArkUINodeHandle node, ArkUI_Bool hideTitle); + void (*setNavHideTitleBar)(ArkUINodeHandle node, ArkUI_Bool hideTitle, ArkUI_Bool animated); void (*resetNavHideTitleBar)(ArkUINodeHandle node); void (*setNavBarPosition)(ArkUINodeHandle node, ArkUI_Int32 value); void (*resetNavBarPosition)(ArkUINodeHandle node); diff --git a/frameworks/core/interfaces/cjui/cjui_api.h b/frameworks/core/interfaces/cjui/cjui_api.h index 64fc7a132cd..9de2120e8ee 100644 --- a/frameworks/core/interfaces/cjui/cjui_api.h +++ b/frameworks/core/interfaces/cjui/cjui_api.h @@ -1451,7 +1451,7 @@ struct CJUIPluginModifier { }; struct CJUINavDestinationModifier { - void (*setHideTitleBar)(ArkUINodeHandle node, ArkUI_Bool hideTitle); + void (*setHideTitleBar)(ArkUINodeHandle node, ArkUI_Bool hideTitle, ArkUI_Bool animated); void (*resetHideTitleBar)(ArkUINodeHandle node); void (*setNavDestinationMode)(ArkUINodeHandle node, ArkUI_Int32 value); void (*resetNavDestinationMode)(ArkUINodeHandle node); @@ -2040,7 +2040,7 @@ struct CJUIToggleModifier { }; struct CJUINavigationModifier { - void (*setHideToolBar)(ArkUINodeHandle node, ArkUI_Bool hide); + void (*setHideToolBar)(ArkUINodeHandle node, ArkUI_Bool hide, ArkUI_Bool animated); void (*resetHideToolBar)(ArkUINodeHandle node); void (*setHideNavBar)(ArkUINodeHandle node, ArkUI_Bool hideNavBar); void (*resetHideNavBar)(ArkUINodeHandle node); @@ -2052,7 +2052,7 @@ struct CJUINavigationModifier { void (*resetSubtitle)(ArkUINodeHandle node); void (*resetUsrNavigationMode)(ArkUINodeHandle node); void (*setUsrNavigationMode)(ArkUINodeHandle node, ArkUI_Int32 value); - void (*setNavHideTitleBar)(ArkUINodeHandle node, ArkUI_Bool hideTitle); + void (*setNavHideTitleBar)(ArkUINodeHandle node, ArkUI_Bool hideTitle, ArkUI_Bool animated); void (*resetNavHideTitleBar)(ArkUINodeHandle node); void (*setNavBarPosition)(ArkUINodeHandle node, ArkUI_Int32 value); void (*resetNavBarPosition)(ArkUINodeHandle node); diff --git a/frameworks/core/interfaces/native/node/nav_destination_modifier.cpp b/frameworks/core/interfaces/native/node/nav_destination_modifier.cpp index 9a43cbdabba..1bbe8ee00e7 100644 --- a/frameworks/core/interfaces/native/node/nav_destination_modifier.cpp +++ b/frameworks/core/interfaces/native/node/nav_destination_modifier.cpp @@ -23,18 +23,18 @@ namespace OHOS::Ace::NG { constexpr int32_t DEFAULT_SAFE_AREA_TYPE = 0b1; constexpr int32_t DEFAULT_SAFE_AREA_EDGE = 0b1111; -void SetHideTitleBar(ArkUINodeHandle node, ArkUI_Bool hideTitle) +void SetHideTitleBar(ArkUINodeHandle node, ArkUI_Bool hideTitle, ArkUI_Bool animated) { auto* frameNode = reinterpret_cast(node); CHECK_NULL_VOID(frameNode); - NavDestinationModelNG::SetHideTitleBar(frameNode, hideTitle); + NavDestinationModelNG::SetHideTitleBar(frameNode, hideTitle, animated); } void ResetHideTitleBar(ArkUINodeHandle node) { auto* frameNode = reinterpret_cast(node); CHECK_NULL_VOID(frameNode); - NavDestinationModelNG::SetHideTitleBar(frameNode, false); + NavDestinationModelNG::SetHideTitleBar(frameNode, false, false); } void SetNavDestinationMode(ArkUINodeHandle node, int32_t value) diff --git a/frameworks/core/interfaces/native/node/navigation_modifier.cpp b/frameworks/core/interfaces/native/node/navigation_modifier.cpp index de9d7f125fa..3709f191aad 100644 --- a/frameworks/core/interfaces/native/node/navigation_modifier.cpp +++ b/frameworks/core/interfaces/native/node/navigation_modifier.cpp @@ -28,18 +28,18 @@ constexpr int32_t NAVIGATION_MODE_RANGE_MODIFIER = 2; constexpr int32_t DEFAULT_NAV_BAR_WIDTH_FOR_MODIFIER = 240; constexpr int32_t DEFAULT_SAFE_AREA_TYPE = 0b1; constexpr int32_t DEFAULT_SAFE_AREA_EDGE = 0b1111; -void SetHideToolBar(ArkUINodeHandle node, ArkUI_Bool hide) +void SetHideToolBar(ArkUINodeHandle node, ArkUI_Bool hide, ArkUI_Bool animated) { auto* frameNode = reinterpret_cast(node); CHECK_NULL_VOID(frameNode); - NavigationModelNG::SetHideToolBar(frameNode, hide); + NavigationModelNG::SetHideToolBar(frameNode, hide, animated); } void ResetHideToolBar(ArkUINodeHandle node) { auto* frameNode = reinterpret_cast(node); CHECK_NULL_VOID(frameNode); - NavigationModelNG::SetHideToolBar(frameNode, false); + NavigationModelNG::SetHideToolBar(frameNode, false, false); } void SetMinContentWidth(ArkUINodeHandle node, ArkUI_Float32 value, int unit) @@ -206,18 +206,18 @@ void ResetUsrNavigationMode(ArkUINodeHandle node) NavigationModelNG::SetUsrNavigationMode(frameNode, NG::NavigationMode::AUTO); } -void SetNavHideTitleBar(ArkUINodeHandle node, ArkUI_Bool hideBackButton) +void SetNavHideTitleBar(ArkUINodeHandle node, ArkUI_Bool hideBackButton, ArkUI_Bool animated) { auto* frameNode = reinterpret_cast(node); CHECK_NULL_VOID(frameNode); - NavigationModelNG::SetHideTitleBar(frameNode, hideBackButton); + NavigationModelNG::SetHideTitleBar(frameNode, hideBackButton, animated); } void ResetNavHideTitleBar(ArkUINodeHandle node) { auto* frameNode = reinterpret_cast(node); CHECK_NULL_VOID(frameNode); - NavigationModelNG::SetHideTitleBar(frameNode, false); + NavigationModelNG::SetHideTitleBar(frameNode, false, false); } void SetNavIgnoreLayoutSafeArea(ArkUINodeHandle node, const char* typeStr, const char* edgesStr) -- Gitee