使用 Page 和 Page Host 节点

备注

Activity 和 Activity Host 节点使您能够创建用户可以在您的应用程序中导航的 UI。因此,它们取代了 Page 和 Page Host 节点的功能。请参阅 活动。

使用 Page 节点在您的应用程序中创建用户界面的结构,并使用 Page Host 节点管理导航请求和 Page Host 节点下的 Page 节点之间的过渡。例如,您可以使用 Page 和 Page Host 节点在您的 Kanzi 应用程序中创建用户界面的不同部分,例如 Page Host 节点 Home、Media、Navigation 或 Settings 屏幕,每个屏幕都有其自己的 Page 和 Page Host 节点层次结构。

您可以嵌套 Page Host 节点来创建应用程序用户界面的结构。例如,您可以有一个 Page Host 节点管理应用程序用户界面的根级导航,例如在 Home、Media、Navigation 和 Settings 之间的转换,并向其添加子 Page Host 节点,每个节点管理其自己的 Page 节点层次结构,例如 Media Page Host 节点的 Page 节点。

../../_images/pages-tutorial-structure-in-pages.png

激活 Page 和 Page Host 节点

当一个 Page 节点处于活动状态时,其所有祖先 Page 和 Page Host 节点也处于活动状态。当一个 Page 或 Page Host 节点处于活动状态时,其所有内容及其所有祖先 Page 和 Page Host 节点的内容都是可见的,用户可以与之交互。在一个简单的用例中,层次结构中只有一个 Page 节点处于活动状态。然而,您可以通过在层次结构中同时激活多个 Page 或 Page Host 节点来构建复杂的结构。要实现这一点,请在您希望自动激活的所有 Page 和 Page Host 节点上启用 Keep Active 属性。当其父 Page 或 Page Host 节点处于活动状态时,这些节点会自动变为活动状态。

跟踪激活

Page Host 节点在其范围内跟踪当前活动的 Page 或 Page Host 节点。当您激活 Page Host 节点时,该 Page Host 节点会自动激活其范围内当前活动的 Page 或 Page Host 节点。这使得 Page Host 节点在激活期间能够记住并恢复其状态到被停用之前的状态。

使用 Page 和 Page Host 节点创建应用程序结构。

使用 Pages 窗口来创建和管理您的应用程序结构。

要使用 Pages 窗口创建应用程序结构:

  1. 在 Pages 窗口中,将鼠标指针移动到 RootPage 上,然后双击 添加页面,以在 RootPage 节点下创建两个 Page 节点。

    当您在 Pages 中创建 Page 节点时,您也可以在 Node Tree 中看到相同的 Page 节点。

    ../../_images/create-two-page-nodes.png ../../_images/page-nodes-in-project1.png

    小技巧

    要在 Pages 窗口中平移和缩放,请使用以下快捷键:

    动作

    快捷键

    平移

    • 点击鼠标中键并拖动。

    • 按下 Space 键,然后单击并拖动鼠标左键。

    缩放

    • 滚动鼠标滚轮。

    • 按下 Shift 和 Alt 键,然后单击并拖动鼠标左键。

  2. 在 Pages 中,双击您在上一步中创建的 Page 节点的名称,并将其重命名为 Applications 和 Settings。

    ../../_images/application-settings-pages.png
  3. 在 Pages 中,右键单击 Applications 和 Settings 节点,然后选择 Convert to Page Host。

    使用 Page Host 节点来分组其他 Page Host 和 Page 节点。Page 和 Page Host 节点之间的主要区别在于,Page Host 节点管理其树中的导航请求和过渡。

    ../../_images/convert-to-page-host.png
  4. 在 Pages 中,将鼠标指针移动到 Page Host 节点 Applications 上,并在该节点的底部单击 image0 三次,以在 Applications 节点下创建三个子 Page 节点,并将它们命名为 Home、Media 和 Car。

    每个 Page 节点都包含其应用程序的内容。 在本教程中,出于原型设计的目的,您只需添加这些应用程序的图像。 然而,当您将应用程序从原型阶段转移到开发阶段时,请将占位符替换为这些应用程序的内容。

    小技巧

    要查看应用程序中 Page 和 Page Host 节点的整个结构, 在 Pages 窗口中单击 image1。

    ../../_images/home-media-car-pages.png
  5. 在 Assets 中,导入要在每个 Page 节点中显示的内容。

  6. 将您导入的内容从 Assets 拖动到 Pages 窗口。

    例如,拖动:

    • 将 Home_Page 纹理应用到 Home 节点。

    • 将 Media_Page 纹理应用到 Media 节点。

    • 将 Car_Page 纹理应用到 Car 节点。

    您将图像从 Assets 拖放到 Pages 中的 Page 或 Page Host 节点上时,Kanzi Studio 会使用您拖放的图像创建一个 Image 节点。

    小技巧

    当您在 Pages 窗口中点击任何 Page 或 Page Host 节点时,Kanzi 会过渡到该节点,您可以在 Preview 中看到过渡。

    ../../_images/home-media-car-with-image-nodes.png ../../_images/home-media-car-images-in-pages.png
  7. 在 Pages 中,点击每个 Page。在 Preview 中,您可以看到 Push 在 Page 节点之间的过渡。

    小技巧

    当您只想在 Preview 中查看所选 Page 或 Page Host 节点的内容时,请在 Pages 中双击该节点,Kanzi Studio 会在 Preview 中的一个单独选项卡中打开它。

设置 Page 和 Page Host 节点的外观

要设置 2D 节点的外观:

在 API 中使用 Page 和 Page Host 节点。

要迁移到选定的 Page 节点:

// Look up child page in the scope of Page host.
PageSharedPtr subPage = host->lookupNode<Page>(path);
// Request animated transition to given page.
subPage->navigate();

要立即迁移到选定的 Page 节点:

// Make immediate transition, without playing an animation.
subPage->navigate(true);

要获取当前激活的 Page 或 Page Host 子孙节点:

// Retrieve currently active subpage.
PageSharedPtr currentSubPage = host->getDefaultChild();

要将 Page Host 节点从当前 Page 节点过渡到下一个 Page 节点:

// Request animated transition from currently active page to next subpage.
PageHost::NavigateNextMessageArguments args;
host->dispatchMessage(PageHost::NavigateNextMessage, args);

有关详细信息,请参阅 PageHost 和 Page 类。

Page 属性类型和消息

有关 Page 节点的可用属性类型和消息的列表,请参阅 Page。

Page Host 属性类型和消息。

有关 Page Host 节点的可用属性类型和消息的列表,请参阅 Page Host。

另请参阅

设置 Page 节点之间的迁移

触发器 (Triggers)