Kanzi 3.9.2 迁移指南

使用此迁移指南将 Kanzi 应用程序从 Kanzi 3.9.1 更新到 Kanzi 3.9.2。

Java 8

Kanzi Android framework (droidfw) 和 Kanzi Java API 现在需要 Java 8 (1.8) 或更高版本。

在您的应用程序的 Gradle 文件中,确保将 Java 语言版本设置为兼容版本。例如,在 app/build.gradle 中设置:

android {
    ...

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

Kanzi Java API 中的更改

  • 删除了需要您将关联类作为参数传递的 Metaclass 构造函数重载。Kanzi 会根据 Metaclass 实例的初始化位置自动推断类。

    将您的 Metaclass 初始化从

    class MyClassName
    {
       public static final Metaclass metaclass =
          new Metaclass("Example.MyClassName", MyClassName.class);
    

    至 (To)

    class MyClassName
    {
       public static final Metaclass metaclass =
          new Metaclass("Example.MyClassName");
    
  • Optional* 类系列不再使用,已被移除。

    • Matrix4x4.getRotationAngle() 现在返回一个可为空的 Vector3,而不是 OptionalVector3。

    • Matrix4x4.createLookAtMatrix() 现在返回一个可为空的 Matrix4x4,而不是 OptionalMatrix4x4。

焦点处理中的更改

Kanzi 3.9.2 在焦点处理 API 中引入了以下更改:

Kanzi 3.9.1

Kanzi 3.9.2

Node::ContainsFocusProperty

Node::FocusStateProperty

ModalScope 实现了模态范围,并由 PopupScope 继承。

OverlayScope 实现了覆盖类型焦点范围的基础,并被以下继承:

  • AutoClosingModalScope (替换 PopupScope)

  • AutoClosingModelessScope

  • ModalScope

  • ModelessScope

FocusManager::FocusScopeType 枚举具有以下值:

  • NoScope

  • Group

  • Fence

  • Modal

  • Popup

FocusScopeType 枚举器具有以下值:

  • NoScope

  • Group

  • Fence

  • Modal

  • AutoClosingModal

  • Modeless

  • AutoClosingModeless

FocusScope::getModalScope()

FocusScope::getOverlayScope()

getPopupTypeScopeForNode()

findOverlayScopeForNode()

isPopupTypeScope()

isOverlayScope()

FocusManager::createFocusScopeInfo()

FocusScope::create() 具有以 Node 或 FocusScopeType 和 Node 作为参数的变体。

void Node::updateFocusScopeInfo()

virtual void Node::updateFocusScopeInfo(FocusScopePtr& nodeScopeInfo)

FocusManager::getPrecedingScope(),返回 ModalScope。

FocusManager::getOverlayBelow(),返回 OverlayScope。

FocusManager::getForemostScope(),返回 ModalScope。

FocusManager::getForemostOverlay(),返回 OverlayScope。

FocusManager::getForemostScopeNode()

FocusManager::getForemostOverlayNode()

FocusManager::ScopeBroughtToFrontMessage

FocusManager::OverlayBroughtToFrontMessage

FocusManager::
ScopeBroughtToFrontMessageArguments
FocusManager::
OverlayBroughtToFrontMessageArguments

FocusManager::ScopeSentToBackMessage

FocusManager::OverlaySentToBackMessage

FocusManager::ScopeSentToBackMessageArguments

FocusManager::OverlaySentToBackMessageArguments

FocusManager::bringScopeToFront()

已移除了

FocusManager::BringScopeToFrontMessage

已移除了

FocusManager::BringScopeToFrontMessageArguments

已移除了

FocusManager::sendScopeToBack()

已移除了

FocusManager::SendScopeToBackMessage

已移除了

FocusManager::SendScopeToBackMessageArguments

已移除了

FocusManager::ScopeStack::bringToFront()

已移除了

FocusManager::ScopeStack::sendToBack()

已移除了

FocusManager::trySetFocus(ModalScope& popupScope, NodeSharedPtr newFocusNode)

已移除了

FocusManager::FocusChainDirection 枚举器具有以下值:

  • PreviousFocusable

  • NextFocusable

FocusChainDirection 枚举具有以下值:

  • Previous

  • Next

FocusManager::FocusReason 枚举器具有以下值:

  • ForceFocusReason

  • FocusChainNavigationReason

  • HiddenFocusReason

  • UnhiddenFocusReason

  • OtherScopeInFront

  • ScopeDetached

  • ScopeNextInStack

  • OtherFocusReason

FocusReason 枚举器具有以下值:

  • Force

  • FocusChainNavigation

  • Hidden

FocusManager::ScopeStack

detail::OverlayStack

要迁移到 Kanzi 3.9.2,您使用早期版本的 Kanzi 创建的包含弹出类型焦点范围的 Kanzi Studio 项目:

  • Bring Scope To Front 和 Send Scope To Back 操作不再存在。将无效操作替换为设置焦点范围可见性的 Set Property 操作。

  • 要通过在覆盖层外部的触摸输出关闭覆盖层,使用 Input Outside Overlay 触发器和 Set Property 动作来隐藏覆盖层。

请参阅 创建叠加层。

要将您使用 Kanzi 3.9.1 创建并使用 Contains Focus 属性的 Kanzi Studio 项目迁移到 Kanzi 3.9.2,请改用 Focus State 属性。请参阅 表明用户界面元素何时具有焦点。

类元数据中的更改

  • 在类 InputManipulator::InputMessageArguments 中重命名了这些属性:

    Kanzi 3.9.1

    Kanzi 3.9.2

    InputMessageArguments.Manipulator.Point

    InputManipulator.InputMessageArguments.ManipulatorPoint

    InputMessageArguments.Manipulator.RayOrigin

    InputManipulator.InputMessageArguments.ManipulatorRayOrigin

    InputMessageArguments.Manipulator.RayDirection

    InputManipulator.InputMessageArguments.ManipulatorRayDirection

    InputMessageArguments.HitTest.Point

    InputManipulator.InputMessageArguments.HitTestPoint

    InputMessageArguments.HitTest.RayOrigin

    InputManipulator.InputMessageArguments.HitTestRayOrigin

    InputMessageArguments.HitTest.RayDirection

    InputManipulator.InputMessageArguments.HitTestRayDirection

    InputMessageArguments.HitTest.Object

    InputManipulator.InputMessageArguments.HitTestObject

  • 在 StateManager 中重命名了这些 MessageArgument 元类:

    Kanzi 3.9.1

    Kanzi 3.9.2

    Message.StateManager.MessageArguments

    Message.StateManagerMessageArguments

    Message.StateManagerStateChange.MessageArguments

    Message.StateManagerStateChangeMessageArguments

    Message.StateManagerGoToState.MessageArguments

    Message.StateManagerGoToStateMessageArguments

    Message.StateManagerGoToDefinedState.MessageArguments

    Message.StateManagerGoToDefinedStateMessageArguments

    Message.StateManagerGoToNextDefinedState.MessageArguments

    Message.StateManagerGoToNextDefinedStateMessageArguments

    Message.StateManagerGoToPreviousDefinedState.MessageArguments

    Message.StateManagerGoToPreviousDefinedStateMessageArguments

    Message.StateManagerEnteredState.MessageArguments

    Message.StateManagerEnteredStateMessageArguments

    Message.StateManagerLeftState.MessageArguments

    Message.StateManagerLeftStateMessageArguments

    Message.StateManagerTransition.MessageArguments

    Message.StateManagerTransitionMessageArguments

    Message.StateManagerTransitionStarted.MessageArguments

    Message.StateManagerTransitionStartedMessageArguments

    Message.StateManagerTransitionFinished.MessageArguments

    Message.StateManagerTransitionFinishedMessageArguments

另请参阅

Kanzi 3.9.2 发行说明

已知问题