Container(コンテナ)
ContainerはTouchGFXのコンポーネントで、子のノードを含んでいます。
Containerの概念の基本的な性質の詳細については、「ウィジェットとコンテナ」のページを参照してください。
ContainerはCachableContainerとして生成することもできます。 CacheableContainerは、コンテンツをダイナミック・ビットマップに描画できます。 詳細については、「キャッシュ可能コンテナによるパフォーマンス向上」ページを参照してください。
ウィジェット・グループ
Containerは、TouchGFX DesignerのContainersウィジェット・グループ内にあります。
プロパティ
TouchGFX DesignerのContainerのプロパティは以下のとおりです。
プロパティ・グループ | プロパティの説明 |
---|---|
Name | ウィジェットの名前。 Nameは、TouchGFX Designerおよびコードで使用される一意の識別子です。 |
Location | XおよびYは、親を基準としてウィジェットの左上隅の位置を指定します。 WおよびHは、ウィジェットの幅と高さを指定します。 Lockは、ウィジェットを現在のX、Y、W、Hでロックするかどうかを指定します。 ウィジェットをロックすると、スクリーンを通したウィジェットとのインタラクションも無効になります。 Visibleは、ウィジェットの可視性を指定します。 ウィジェットを非表示にすると、画面を介したウィジェットとの相互作用も無効になります。 |
Caching | Cachableは、ContainerをCachableContainerとして生成するかどうかを指定します。 |
Mixins | Draggableは、実行時にウィジェットをドラッグ可能にするかどうかを指定します。 ClickListenerは、ウィジェットがクリックされたときにコールバックを発行するかどうかを指定します。 FadeAnimatorは、ウィジェットがAlpha値への変更をアニメーション化できるかどうかを指定します。 MoveAnimatorは、ウィジェットがXおよびY値への変更をアニメーション化できるかどうかを指定します。 |
インタラクション
TouchGFX DesignerでContainerによってサポートされるアクションとトリガは以下のとおりです。
アクション
ウィジェット固有のアクション | 説明 |
---|---|
Resize widget | ウィジェットの幅と高さを変更します。 |
標準のウィジェット・アクション | 説明 |
---|---|
Move widget | 時間の経過に伴ってウィジェットを新しい位置に移動します。 |
Hide widget | ウィジェットを非表示にします(可視性をfalseに設定します)。 |
Show widget | 非表示のウィジェットを表示します(可視性をtrueに設定します)。 |
トリガ
Containerはトリガを発行しません。
パフォーマンス
Containerそのものがパフォーマンスに影響することはなく、その子に完全に依存します。 このため、Containerはほとんどのプラットフォーム上で非常に高速のウィジェットであると見なされます。
場合によっては、CachableContainerを使用してUI要素をダイナミック・ビットマップにキャッシュすることで、アプリケーション全体のパフォーマンスを大幅に向上させることができます。 詳細については、「キャッシュ可能コンテナによるパフォーマンス向上」の記事を参照してください。
描画のパフォーマンスの詳細については、「一般的なUIコンポーネントのパフォーマンス」セクションを参照してください。
例
生成済みコード
View基底クラスの生成済みコードを見ると、TouchGFX DesignerによるContainerの設定方法がわかります。
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
container1.invalidate()
を呼び出して、再描画を行う必要があることを忘れないでください。