跳转到主要内容

容器

容器是TouchGFX中的组件,可包含子节点。

要了解更多关于容器概念基本性质的信息,请阅读控件和容器页面

还可以生成CachableContainer形式的容器。 CacheableContainer可将其内容渲染到动态位图。 相关内容将在通过CacheableContainer提高性能页面中进行详细介绍。

在模拟器中运行的容器控件

控件组

容器位于TouchGFX Designer中的容器控件组中。

TouchGFX Designer中的容器控件

属性

TouchGFX Designer中容器的属性。

属性组属性说明
名称控件的名称名称是TouchGFX Designer和代码中使用的唯一标识符
位置XY 指定控件左上角相对于其父的位置。

WH 指定控件的宽度和高度。

锁定指定控件是否应锁定为其当前的X、Y、W和H。
如果锁定控件,还会禁止通过屏幕与控件进行交互。

可见 指定控件的可见性。 使控件不可见还将禁用与控件之间通过屏幕进行的交互。
缓存指定容器是否应生成为CachableContainer形式。
Mixin可拖动 指定在运行时控件是否可拖动。

ClickListener 指定控件被点击时是否会调用回调函数。

FadeAnimator 指定控件是否可绘制其 Alpha 值变化的动画。

MoveAnimator 指定控件是否可绘制 XY 值变化的动画。

交互

TouchGFX Designer中的容器支持的操作和触发条件。

操作

控件特有的操作说明
调整控件的尺寸调整控件的宽度和高度。
标准控件操作说明
移动控件随时间的推移将控件移动到新位置。
隐藏控件隐藏控件(将可见性设置为false)。
显示控件使隐藏的控件可见(将可见性设置为true)。

触发条件

容器不会产生任何触发条件。

性能

容器自身对性能没有任何影响,完全依赖于其子容器。 因此,在大部分平台上,会将容器视为非常快速的控件。

在某些情况下,使用CachableContainer在动态位图中缓存UI元素可显著提高整个应用的性能。 更多详细信息,请参见通过CacheableContainer提高性能一文。

更多关于绘图性能的常规信息,请阅读常规UI组件性能部分。

示例

生成代码

在生成的视图基类的代码中,可以查看TouchGFX Designer是如何创建容器的。

Screen1ViewBase.cpp
#include <gui_generated/screen1_screen/Screen1ViewBase.hpp>
#include "BitmapDatabase.hpp"

Screen1ViewBase::Screen1ViewBase()
{
container1.setPosition(67, 11, 347, 250);

image1.setXY(109, 61);
image1.setBitmap(touchgfx::Bitmap(BITMAP_BLUE_LOGO_TOUCHGFX_LOGO_ID));
container1.add(image1);

add(container1);
}
Tip
可在用户代码中使用这些函数以及Container类中提供的其他函数。 如果修改了控件的外观,记得调用 container1.invalidate()container1.invalidateContent() 以强制重绘。 当使用 container1.invalidateContent(),必须调用container1.invalidateContent() 更改控件外观之前和之后。 注意: container1.invalidateContent()将对容器的所有子级调用 invalidateContent()

API参考