mirror of
https://gitee.com/openharmony/arkui_ace_engine
synced 2024-11-23 15:10:30 +00:00
!42882 navdestination支持底部工具栏-part2
Merge pull request !42882 from zhangdw521/refactor_navigation_p2
This commit is contained in:
commit
0718b21bfc
@ -1135,6 +1135,8 @@ frameworks/bridge/declarative_frontend/jsview/js_navigation.cpp @arkui_superman
|
||||
frameworks/bridge/declarative_frontend/jsview/js_navigation.h @arkui_superman
|
||||
frameworks/bridge/declarative_frontend/jsview/js_navigation_stack.cpp @arkui_superman
|
||||
frameworks/bridge/declarative_frontend/jsview/js_navigation_stack.h @arkui_superman
|
||||
frameworks/bridge/declarative_frontend/jsview/js_navigation_utils.cpp @arkui_superman
|
||||
frameworks/bridge/declarative_frontend/jsview/js_navigation_utils.h @arkui_superman
|
||||
frameworks/bridge/declarative_frontend/jsview/js_navigator.cpp @arkui_superman
|
||||
frameworks/bridge/declarative_frontend/jsview/js_navigator.h @arkui_superman
|
||||
frameworks/bridge/declarative_frontend/jsview/js_nav_path_stack.cpp @arkui_superman
|
||||
|
@ -21,13 +21,14 @@
|
||||
#include "core/components/common/layout/constants.h"
|
||||
#include "core/components_ng/base/inspector_filter.h"
|
||||
#include "core/components_ng/layout/layout_property.h"
|
||||
#include "core/components_ng/pattern/navigation/navdestination_layout_property_base.h"
|
||||
#include "core/components_ng/pattern/navigation/navigation_declaration.h"
|
||||
#include "core/components_ng/property/property.h"
|
||||
|
||||
namespace OHOS::Ace::NG {
|
||||
|
||||
class ACE_EXPORT NavBarLayoutProperty : public LayoutProperty {
|
||||
DECLARE_ACE_TYPE(NavBarLayoutProperty, LayoutProperty);
|
||||
class ACE_EXPORT NavBarLayoutProperty : public NavDestinationLayoutPropertyBase {
|
||||
DECLARE_ACE_TYPE(NavBarLayoutProperty, NavDestinationLayoutPropertyBase);
|
||||
|
||||
public:
|
||||
NavBarLayoutProperty() = default;
|
||||
@ -37,20 +38,17 @@ public:
|
||||
RefPtr<LayoutProperty> Clone() const override
|
||||
{
|
||||
auto copy = MakeRefPtr<NavBarLayoutProperty>();
|
||||
copy->LayoutProperty::UpdateLayoutProperty(DynamicCast<LayoutProperty>(this));
|
||||
copy->NavDestinationLayoutPropertyBase::UpdateBaseLayoutProperty(
|
||||
DynamicCast<NavDestinationLayoutPropertyBase>(this));
|
||||
copy->propTitleMode_ = CloneTitleMode();
|
||||
copy->propHideTitleBar_ = CloneHideTitleBar();
|
||||
copy->propHideToolBar_ = CloneHideToolBar();
|
||||
copy->propHideBackButton_ = CloneHideBackButton();
|
||||
return copy;
|
||||
}
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
LayoutProperty::Reset();
|
||||
NavDestinationLayoutPropertyBase::Reset();
|
||||
ResetTitleMode();
|
||||
ResetHideTitleBar();
|
||||
ResetHideToolBar();
|
||||
ResetHideBackButton();
|
||||
}
|
||||
|
||||
@ -68,10 +66,7 @@ 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(HideToolBar, 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);
|
||||
};
|
||||
|
||||
} // namespace OHOS::Ace::NG
|
||||
|
@ -35,8 +35,7 @@ class ACE_EXPORT NavBarNode : public NavDestinationNodeBase {
|
||||
DECLARE_ACE_TYPE(NavBarNode, NavDestinationNodeBase)
|
||||
public:
|
||||
NavBarNode(const std::string& tag, int32_t nodeId, const RefPtr<Pattern>& pattern)
|
||||
: NavDestinationNodeBase(tag, nodeId, pattern)
|
||||
{}
|
||||
: NavDestinationNodeBase(tag, nodeId, pattern) {}
|
||||
~NavBarNode() override = default;
|
||||
void AddChildToGroup(const RefPtr<UINode>& child, int32_t slot = DEFAULT_NODE_SLOT) override;
|
||||
static RefPtr<NavBarNode> GetOrCreateNavBarNode(
|
||||
@ -92,16 +91,6 @@ public:
|
||||
return landscapeMenu_;
|
||||
}
|
||||
|
||||
void SetTitleBarNode(const RefPtr<UINode>& title)
|
||||
{
|
||||
titleBarNode_ = title;
|
||||
}
|
||||
|
||||
const RefPtr<UINode>& GetTitleBarNode() const
|
||||
{
|
||||
return titleBarNode_;
|
||||
}
|
||||
|
||||
void SetToolBarNode(const RefPtr<UINode>& toolBarNode)
|
||||
{
|
||||
toolBarNode_ = toolBarNode;
|
||||
@ -145,8 +134,6 @@ public:
|
||||
std::string GetBarItemsString(bool isMenu) const;
|
||||
|
||||
// custom node checking
|
||||
ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(PrevTitleIsCustom, bool);
|
||||
void OnPrevTitleIsCustomUpdate(bool value) {}
|
||||
ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(PrevMenuIsCustom, bool);
|
||||
void OnPrevMenuIsCustomUpdate(bool value) {}
|
||||
ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(PrevToolBarIsCustom, bool);
|
||||
@ -158,21 +145,6 @@ public:
|
||||
ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(ToolBarNodeOperation, ChildNodeOperation);
|
||||
void OnToolBarNodeOperationUpdate(ChildNodeOperation value) {}
|
||||
|
||||
void SetTransitionType(PageTransitionType type)
|
||||
{
|
||||
transitionType_ = type;
|
||||
}
|
||||
|
||||
PageTransitionType GetTransitionType() const
|
||||
{
|
||||
return transitionType_;
|
||||
}
|
||||
|
||||
float GetLanguageDirection()
|
||||
{
|
||||
return AceApplicationInfo::GetInstance().IsRightToLeft() ? -1.0f : 1.0f;
|
||||
}
|
||||
|
||||
void InitSystemTransitionPop();
|
||||
void SystemTransitionPushAction(bool isFinish);
|
||||
void StartSystemTransitionPush();
|
||||
@ -185,12 +157,10 @@ private:
|
||||
RefPtr<UINode> moreMenuNode_;
|
||||
RefPtr<UINode> toolbarMoreMenuNode_;
|
||||
RefPtr<UINode> moreLandscapeMenuNode_;
|
||||
RefPtr<UINode> titleBarNode_;
|
||||
RefPtr<UINode> toolBarNode_;
|
||||
RefPtr<UINode> preToolBarNode_;
|
||||
RefPtr<UINode> toolBarDividerNode_;
|
||||
bool isNewToolbar_ = false;
|
||||
PageTransitionType transitionType_ = PageTransitionType::NONE;
|
||||
};
|
||||
|
||||
} // namespace OHOS::Ace::NG
|
||||
|
@ -31,15 +31,11 @@ namespace OHOS::Ace::NG {
|
||||
|
||||
class NavBarPattern : public NavDestinationPatternBase {
|
||||
DECLARE_ACE_TYPE(NavBarPattern, NavDestinationPatternBase);
|
||||
|
||||
public:
|
||||
NavBarPattern() = default;
|
||||
~NavBarPattern() override = default;
|
||||
|
||||
bool IsAtomicNode() const override
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
RefPtr<LayoutProperty> CreateLayoutProperty() override
|
||||
{
|
||||
return MakeRefPtr<NavBarLayoutProperty>();
|
||||
@ -49,11 +45,6 @@ public:
|
||||
{
|
||||
return MakeRefPtr<NavBarLayoutAlgorithm>();
|
||||
}
|
||||
|
||||
bool CheckCustomAvoidKeyboard() const override
|
||||
{
|
||||
return !NearZero(avoidKeyboardOffset_);
|
||||
}
|
||||
|
||||
void SetTitleBarMenuItems(const std::vector<NG::BarItem>& menuItems)
|
||||
{
|
||||
@ -129,21 +120,6 @@ public:
|
||||
WindowFocus(false);
|
||||
}
|
||||
|
||||
FocusPattern GetFocusPattern() const override
|
||||
{
|
||||
return { FocusType::SCOPE, true };
|
||||
}
|
||||
|
||||
std::list<int32_t> GetRouteOfFirstScope() override
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
bool IsEntryFocusView() override
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
int32_t GetMaxMenuNum() const
|
||||
{
|
||||
return maxMenuNums_;
|
||||
@ -160,15 +136,6 @@ public:
|
||||
}
|
||||
OffsetF GetShowMenuOffset(const RefPtr<BarItemNode> barItemNode, RefPtr<FrameNode> menuNode);
|
||||
|
||||
void SetAvoidKeyboardOffset(float avoidKeyboardOffset)
|
||||
{
|
||||
avoidKeyboardOffset_ = avoidKeyboardOffset;
|
||||
}
|
||||
float GetAvoidKeyboardOffset()
|
||||
{
|
||||
return avoidKeyboardOffset_;
|
||||
}
|
||||
|
||||
Dimension GetTitleBarHeightBeforeMeasure() override;
|
||||
|
||||
protected:
|
||||
@ -191,7 +158,6 @@ private:
|
||||
RefPtr<Animator> controller_;
|
||||
NavigationTitleMode titleMode_ = NavigationTitleMode::FREE;
|
||||
int32_t maxMenuNums_ = -1;
|
||||
float avoidKeyboardOffset_ = 0.0f;
|
||||
bool isWindowFocus_ = true;
|
||||
};
|
||||
|
||||
|
@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_NAVIGATION_NAVDESTINATION_LAYOUT_PROPERTY_BASE_H
|
||||
#define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_NAVIGATION_NAVDESTINATION_LAYOUT_PROPERTY_BASE_H
|
||||
|
||||
#include "base/geometry/dimension.h"
|
||||
#include "base/utils/macros.h"
|
||||
#include "core/components/common/layout/constants.h"
|
||||
#include "core/components_ng/base/inspector_filter.h"
|
||||
#include "core/components_ng/layout/layout_property.h"
|
||||
#include "core/components_ng/pattern/navigation/navigation_declaration.h"
|
||||
#include "core/components_ng/property/property.h"
|
||||
|
||||
namespace OHOS::Ace::NG {
|
||||
|
||||
class ACE_EXPORT NavDestinationLayoutPropertyBase : public LayoutProperty {
|
||||
DECLARE_ACE_TYPE(NavDestinationLayoutPropertyBase, LayoutProperty);
|
||||
|
||||
public:
|
||||
NavDestinationLayoutPropertyBase() = default;
|
||||
~NavDestinationLayoutPropertyBase() override = default;
|
||||
|
||||
RefPtr<LayoutProperty> Clone() const override
|
||||
{
|
||||
auto copy = MakeRefPtr<NavDestinationLayoutPropertyBase>();
|
||||
copy->LayoutProperty::UpdateLayoutProperty(DynamicCast<LayoutProperty>(this));
|
||||
copy->propHideTitleBar_ = CloneHideTitleBar();
|
||||
copy->propHideToolBar_ = CloneHideToolBar();
|
||||
return copy;
|
||||
}
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
LayoutProperty::Reset();
|
||||
ResetHideTitleBar();
|
||||
ResetHideToolBar();
|
||||
}
|
||||
|
||||
ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(HideTitleBar, bool, PROPERTY_UPDATE_MEASURE);
|
||||
ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(HideToolBar, bool, PROPERTY_UPDATE_MEASURE);
|
||||
ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IgnoreLayoutSafeArea, SafeAreaExpandOpts, PROPERTY_UPDATE_MEASURE);
|
||||
|
||||
protected:
|
||||
void UpdateBaseLayoutProperty(const NavDestinationLayoutPropertyBase* layoutProperty)
|
||||
{
|
||||
LayoutProperty::UpdateLayoutProperty(layoutProperty);
|
||||
propHideTitleBar_ = CloneHideTitleBar();
|
||||
propHideToolBar_ = CloneHideToolBar();
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace OHOS::Ace::NG
|
||||
|
||||
#endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_NAVIGATION_NAVDESTINATION_LAYOUT_PROPERTY_BASE_H
|
@ -16,15 +16,20 @@
|
||||
#ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERNS_NAVIGATION_NAVDESTINATION_NODE_BASE_H
|
||||
#define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERNS_NAVIGATION_NAVDESTINATION_NODE_BASE_H
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
#include "core/animation/page_transition_common.h"
|
||||
#include "core/components_ng/base/group_node.h"
|
||||
#include "core/components_ng/pattern/navigation/navigation_declaration.h"
|
||||
#include "core/components_ng/pattern/pattern.h"
|
||||
#include "core/components_ng/property/property.h"
|
||||
|
||||
namespace OHOS::Ace::NG {
|
||||
class NavDestinationNodeBase : public GroupNode {
|
||||
DECLARE_ACE_TYPE(NavDestinationNodeBase, GroupNode)
|
||||
public:
|
||||
NavDestinationNodeBase(const std::string& tag, int32_t nodeId, const RefPtr<Pattern>& pattern)
|
||||
: GroupNode(tag, nodeId, pattern)
|
||||
{}
|
||||
: GroupNode(tag, nodeId, pattern) {}
|
||||
~NavDestinationNodeBase() override = default;
|
||||
|
||||
void SetContentNode(const RefPtr<UINode>& contentNode)
|
||||
@ -37,8 +42,39 @@ public:
|
||||
return contentNode_;
|
||||
}
|
||||
|
||||
void SetTitleBarNode(const RefPtr<UINode>& title)
|
||||
{
|
||||
titleBarNode_ = title;
|
||||
}
|
||||
|
||||
const RefPtr<UINode>& GetTitleBarNode() const
|
||||
{
|
||||
return titleBarNode_;
|
||||
}
|
||||
|
||||
// custom node checking
|
||||
ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(PrevTitleIsCustom, bool);
|
||||
void OnPrevTitleIsCustomUpdate(bool value) {}
|
||||
|
||||
void SetTransitionType(PageTransitionType type)
|
||||
{
|
||||
transitionType_ = type;
|
||||
}
|
||||
|
||||
PageTransitionType GetTransitionType() const
|
||||
{
|
||||
return transitionType_;
|
||||
}
|
||||
|
||||
float GetLanguageDirection()
|
||||
{
|
||||
return AceApplicationInfo::GetInstance().IsRightToLeft() ? -1.0f : 1.0f;
|
||||
}
|
||||
|
||||
protected:
|
||||
RefPtr<UINode> contentNode_;
|
||||
RefPtr<UINode> titleBarNode_;
|
||||
PageTransitionType transitionType_ = PageTransitionType::NONE;
|
||||
};
|
||||
} // namespace OHOS::Ace::NG
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
@ -16,10 +16,8 @@
|
||||
#include "core/components_ng/pattern/navigation/navdestination_pattern_base.h"
|
||||
|
||||
#include "core/components_ng/pattern/navigation/navdestination_node_base.h"
|
||||
namespace OHOS::Ace::NG {
|
||||
namespace {
|
||||
}
|
||||
|
||||
namespace OHOS::Ace::NG {
|
||||
void NavDestinationPatternBase::SetTitleBarStyle(const std::optional<BarStyle>& barStyle)
|
||||
{
|
||||
if (titleBarStyle_ != barStyle) {
|
||||
|
@ -16,9 +16,16 @@
|
||||
#ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERNS_NAVIGATION_NAVDESTINATION_PATTERN_BASE_H
|
||||
#define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERNS_NAVIGATION_NAVDESTINATION_PATTERN_BASE_H
|
||||
|
||||
#include "core/components_ng/pattern/pattern.h"
|
||||
#include <vector>
|
||||
#include <optional>
|
||||
|
||||
#include "base/memory/ace_type.h"
|
||||
#include "base/memory/referenced.h"
|
||||
#include "core/components_ng/manager/focus/focus_view.h"
|
||||
#include "core/components_ng/pattern/navigation/navigation_declaration.h"
|
||||
#include "core/components_ng/pattern/navigation/navigation_options.h"
|
||||
#include "core/components_ng/pattern/pattern.h"
|
||||
#include "core/pipeline/base/element_register.h"
|
||||
|
||||
namespace OHOS::Ace::NG {
|
||||
|
||||
@ -47,6 +54,39 @@ public:
|
||||
return 0.0_vp;
|
||||
}
|
||||
|
||||
bool IsAtomicNode() const override
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CheckCustomAvoidKeyboard() const override
|
||||
{
|
||||
return !NearZero(avoidKeyboardOffset_);
|
||||
}
|
||||
void SetAvoidKeyboardOffset(float avoidKeyboardOffset)
|
||||
{
|
||||
avoidKeyboardOffset_ = avoidKeyboardOffset;
|
||||
}
|
||||
float GetAvoidKeyboardOffset()
|
||||
{
|
||||
return avoidKeyboardOffset_;
|
||||
}
|
||||
|
||||
FocusPattern GetFocusPattern() const override
|
||||
{
|
||||
return { FocusType::SCOPE, true };
|
||||
}
|
||||
|
||||
std::list<int32_t> GetRouteOfFirstScope() override
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
bool IsEntryFocusView() override
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
protected:
|
||||
bool UpdateBarSafeAreaPadding();
|
||||
|
||||
@ -55,6 +95,7 @@ protected:
|
||||
std::optional<BarStyle> titleBarStyle_;
|
||||
std::optional<BarStyle> toolBarStyle_;
|
||||
bool safeAreaPaddingChanged_ = false;
|
||||
float avoidKeyboardOffset_ = 0.0f;
|
||||
};
|
||||
} // namespace OHOS::Ace::NG
|
||||
|
||||
|
@ -36,8 +36,7 @@ class ACE_EXPORT NavDestinationGroupNode : public NavDestinationNodeBase {
|
||||
DECLARE_ACE_TYPE(NavDestinationGroupNode, NavDestinationNodeBase)
|
||||
public:
|
||||
NavDestinationGroupNode(const std::string& tag, int32_t nodeId, const RefPtr<Pattern>& pattern)
|
||||
: NavDestinationNodeBase(tag, nodeId, pattern)
|
||||
{}
|
||||
: NavDestinationNodeBase(tag, nodeId, pattern) {}
|
||||
~NavDestinationGroupNode() override;
|
||||
void AddChildToGroup(const RefPtr<UINode>& child, int32_t slot = DEFAULT_NODE_SLOT) override;
|
||||
void DeleteChildFromGroup(int32_t slot = DEFAULT_NODE_SLOT) override;
|
||||
@ -45,16 +44,6 @@ public:
|
||||
const std::string& tag, int32_t nodeId, const std::function<RefPtr<Pattern>(void)>& patternCreator);
|
||||
void ToJsonValue(std::unique_ptr<JsonValue>& json, const InspectorFilter& filter) const override;
|
||||
|
||||
void SetTitleBarNode(const RefPtr<UINode>& title)
|
||||
{
|
||||
titleBarNode_ = title;
|
||||
}
|
||||
|
||||
const RefPtr<UINode>& GetTitleBarNode() const
|
||||
{
|
||||
return titleBarNode_;
|
||||
}
|
||||
|
||||
void SetNavDestinationBackButtonEvent(const NavDestinationBackButtonEvent& backButtonEvent)
|
||||
{
|
||||
backButtonEvent_ = backButtonEvent;
|
||||
@ -65,21 +54,12 @@ public:
|
||||
return backButtonEvent_;
|
||||
}
|
||||
|
||||
// custom node checking
|
||||
ACE_DEFINE_PROPERTY_ITEM_FUNC_WITHOUT_GROUP(PrevTitleIsCustom, bool);
|
||||
void OnPrevTitleIsCustomUpdate(bool value) {}
|
||||
|
||||
void OnAttachToMainTree(bool recursive) override;
|
||||
|
||||
void OnOffscreenProcess(bool recursive) override;
|
||||
|
||||
void ProcessShallowBuilder();
|
||||
|
||||
void SetTransitionType(PageTransitionType type)
|
||||
{
|
||||
transitionType_ = type;
|
||||
}
|
||||
|
||||
void SetIsOnAnimation(bool isOnAnimation)
|
||||
{
|
||||
isOnAnimation_ = isOnAnimation;
|
||||
@ -90,11 +70,6 @@ public:
|
||||
return isOnAnimation_;
|
||||
}
|
||||
|
||||
PageTransitionType GetTransitionType() const
|
||||
{
|
||||
return transitionType_;
|
||||
}
|
||||
|
||||
RefPtr<CustomNodeBase> GetNavDestinationCustomNode();
|
||||
|
||||
void SetNavDestinationCustomNode(WeakPtr<CustomNodeBase> customNode)
|
||||
@ -170,11 +145,6 @@ public:
|
||||
return needRemoveInPush_;
|
||||
}
|
||||
|
||||
float GetLanguageDirection()
|
||||
{
|
||||
return AceApplicationInfo::GetInstance().IsRightToLeft() ? -1.0f : 1.0f;
|
||||
}
|
||||
|
||||
void InitSystemTransitionPush(bool transitionIn);
|
||||
void StartSystemTransitionPush(bool transitionIn);
|
||||
void SystemTransitionPushCallback(bool transitionIn);
|
||||
@ -208,12 +178,10 @@ public:
|
||||
return needAppearFromRecovery_;
|
||||
}
|
||||
private:
|
||||
RefPtr<UINode> titleBarNode_;
|
||||
WeakPtr<CustomNodeBase> customNode_; // nearest parent customNode
|
||||
NavDestinationBackButtonEvent backButtonEvent_;
|
||||
bool isOnAnimation_ = false;
|
||||
int32_t index_ = -1;
|
||||
PageTransitionType transitionType_ = PageTransitionType::NONE;
|
||||
NavDestinationMode mode_ = NavDestinationMode::STANDARD;
|
||||
bool isCacheNode_ = false;
|
||||
bool isAnimated_ = true;
|
||||
|
@ -20,14 +20,15 @@
|
||||
#include "base/utils/macros.h"
|
||||
#include "core/components/common/layout/constants.h"
|
||||
#include "core/components_ng/layout/layout_property.h"
|
||||
#include "core/components_ng/pattern/navigation/navdestination_layout_property_base.h"
|
||||
#include "core/components_ng/pattern/navigation/navigation_declaration.h"
|
||||
#include "core/components_ng/property/property.h"
|
||||
#include "core/image/image_source_info.h"
|
||||
|
||||
namespace OHOS::Ace::NG {
|
||||
|
||||
class ACE_EXPORT NavDestinationLayoutProperty : public LayoutProperty {
|
||||
DECLARE_ACE_TYPE(NavDestinationLayoutProperty, LayoutProperty);
|
||||
class ACE_EXPORT NavDestinationLayoutProperty : public NavDestinationLayoutPropertyBase {
|
||||
DECLARE_ACE_TYPE(NavDestinationLayoutProperty, NavDestinationLayoutPropertyBase);
|
||||
|
||||
public:
|
||||
NavDestinationLayoutProperty() = default;
|
||||
@ -36,8 +37,8 @@ public:
|
||||
RefPtr<LayoutProperty> Clone() const override
|
||||
{
|
||||
auto copy = MakeRefPtr<NavDestinationLayoutProperty>();
|
||||
copy->LayoutProperty::UpdateLayoutProperty(DynamicCast<LayoutProperty>(this));
|
||||
copy->propHideTitleBar_ = CloneHideTitleBar();
|
||||
copy->NavDestinationLayoutPropertyBase::UpdateBaseLayoutProperty(
|
||||
DynamicCast<NavDestinationLayoutPropertyBase>(this));
|
||||
copy->propNoPixMap_ = CloneNoPixMap();
|
||||
copy->propImageSource_ = CloneImageSource();
|
||||
copy->propPixelMap_ = ClonePixelMap();
|
||||
@ -46,19 +47,16 @@ public:
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
LayoutProperty::Reset();
|
||||
ResetHideTitleBar();
|
||||
NavDestinationLayoutPropertyBase::Reset();
|
||||
ResetNoPixMap();
|
||||
ResetImageSource();
|
||||
ResetPixelMap();
|
||||
}
|
||||
|
||||
ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(HideTitleBar, bool, PROPERTY_UPDATE_MEASURE);
|
||||
// back button icon
|
||||
ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(NoPixMap, bool, PROPERTY_UPDATE_MEASURE);
|
||||
ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(ImageSource, ImageSourceInfo, PROPERTY_UPDATE_MEASURE);
|
||||
ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(PixelMap, RefPtr<PixelMap>, PROPERTY_UPDATE_MEASURE);
|
||||
ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IgnoreLayoutSafeArea, SafeAreaExpandOpts, PROPERTY_UPDATE_MEASURE);
|
||||
};
|
||||
|
||||
} // namespace OHOS::Ace::NG
|
||||
|
@ -21,12 +21,12 @@
|
||||
#include "base/utils/utils.h"
|
||||
#include "core/common/autofill/auto_fill_trigger_state_holder.h"
|
||||
#include "core/components_ng/base/ui_node.h"
|
||||
#include "core/components_ng/pattern/navigation/navdestination_pattern_base.h"
|
||||
#include "core/components_ng/pattern/navigation/navigation_event_hub.h"
|
||||
#include "core/components_ng/pattern/navigation/navigation_stack.h"
|
||||
#include "core/components_ng/pattern/navrouter/navdestination_context.h"
|
||||
#include "core/components_ng/pattern/navrouter/navdestination_event_hub.h"
|
||||
#include "core/components_ng/pattern/navrouter/navdestination_group_node.h"
|
||||
#include "core/components_ng/pattern/navigation/navdestination_pattern_base.h"
|
||||
#include "core/components_ng/pattern/navrouter/navdestination_layout_algorithm.h"
|
||||
#include "core/components_ng/pattern/navrouter/navdestination_layout_property.h"
|
||||
#include "core/components_ng/pattern/pattern.h"
|
||||
@ -43,11 +43,6 @@ public:
|
||||
NavDestinationPattern();
|
||||
~NavDestinationPattern() override;
|
||||
|
||||
bool IsAtomicNode() const override
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
RefPtr<LayoutProperty> CreateLayoutProperty() override
|
||||
{
|
||||
return MakeRefPtr<NavDestinationLayoutProperty>();
|
||||
@ -60,11 +55,6 @@ public:
|
||||
return layout;
|
||||
}
|
||||
|
||||
bool CheckCustomAvoidKeyboard() const override
|
||||
{
|
||||
return !NearZero(avoidKeyboardOffset_);
|
||||
}
|
||||
|
||||
RefPtr<EventHub> CreateEventHub() override
|
||||
{
|
||||
return MakeRefPtr<NavDestinationEventHub>();
|
||||
@ -146,21 +136,6 @@ public:
|
||||
return customNode_;
|
||||
}
|
||||
|
||||
FocusPattern GetFocusPattern() const override
|
||||
{
|
||||
return { FocusType::SCOPE, true };
|
||||
}
|
||||
|
||||
std::list<int32_t> GetRouteOfFirstScope() override
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
bool IsEntryFocusView() override
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void SetIsOnShow(bool isOnShow)
|
||||
{
|
||||
isOnShow_ = isOnShow;
|
||||
@ -248,15 +223,6 @@ public:
|
||||
}
|
||||
|
||||
void OnLanguageConfigurationUpdate() override;
|
||||
void SetAvoidKeyboardOffset(float avoidKeyboardOffset)
|
||||
{
|
||||
avoidKeyboardOffset_ = avoidKeyboardOffset;
|
||||
}
|
||||
|
||||
float GetAvoidKeyboardOffset()
|
||||
{
|
||||
return avoidKeyboardOffset_;
|
||||
}
|
||||
|
||||
bool NeedIgnoreKeyboard();
|
||||
|
||||
@ -299,7 +265,6 @@ private:
|
||||
bool isUserDefinedBgColor_ = false;
|
||||
bool isRightToLeft_ = false;
|
||||
uint64_t navDestinationId_ = 0;
|
||||
float avoidKeyboardOffset_ = 0.0f;
|
||||
|
||||
RefPtr<LongPressEvent> longPressEvent_;
|
||||
RefPtr<FrameNode> dialogNode_;
|
||||
|
Loading…
Reference in New Issue
Block a user