同じ画面のバリエーション (デバイスに応じて表示) を表す複数のアートボードを設計する場合、GeneXus はそれらを複数のレイアウトを持つ 1 つの Panel オブジェクトに統合します。
複数のプラットフォーム、デバイス、および向きに対応した画面デザインを、
文法のセクションで説明したトークンのシーケンスの表示規則に従って GeneXus にインポートし、アートボードの名前に接尾語を追加します。
そうすることで、次のような複数のアートボードを設計できます:
GeneXus では、これらのアートボードが階層構造で
[ Sketch インポート ] ダイアログに表示されます。
これらのアートボードは、同じ Panel オブジェクト内で、そのすべてのバリエーションでレンダリングされます。
注意: この機能は Panel オブジェクト (Web Panel オブジェクトではない) にのみ適用されます。そのため、 [ Sketch インポート ] ダイアログ内の [ Web パネルとしてインポート ] オプションを、設計のロード/インポート前に消去する必要があります。
複数レイアウトのトークンのシーケンスの表記規則は、次の文法に従う必要があります:
表記規則 |
:= |
PANEL_NAME プラットフォームのセパレーター |
プラットフォーム |
:= |
デバイス | 'Web' デバイス | 'Android' デバイス | 'Apple' デバイス |
デバイス |
:= |
向き | 'Phone' 向き | 'Tablet' 向き | 'Watch' | 'TV' |
向き |
:= |
'' | 'Landscape' |
セパレーター |
:= |
'' | スラッシュ ("/") を除く英数字以外の文字 |
たとえば、「Attraction Panel」という名前のパネルを設計している場合、文法で次のレイアウトを定義できます:
アートボード名 |
|
Attraction Panel |
|
|
Attraction Panel |
- Landscape |
|
Attraction Panel |
- Phone |
|
Attraction Panel |
- Phone Landscape |
|
Attraction Panel |
- Tablet |
|
Attraction Panel |
- Tablet Landscape |
|
Attraction Panel |
- Watch |
← 無効: ターゲットデバイスを指定しないと意味がありません。 |
Attraction Panel |
- Watch Landscape |
← 無効:「Watch」と同様です。 |
Attraction Panel |
- TV |
← 無効: ターゲットデバイスを指定しないと意味がありません。 |
Attraction Panel |
- TV Landscape |
← 無効: 「TV」と同様です。 |
Attraction Panel |
- Web |
|
Attraction Panel |
- Web Landscape |
← 無効: 意味をなしません。 |
Attraction Panel |
- Web Phone |
|
Attraction Panel |
- Web Phone Landscape |
|
Attraction Panel |
- Web Tablet |
← 無効: 意味をなしません。代わりに「Web」を使用します。 |
Attraction Panel |
- Web Tablet Landscape |
← 無効:「Web Tablet」と同様です。 |
Attraction Panel |
- Web Watch |
← 無効: 意味をなしません。 |
Attraction Panel |
- Web Watch Landscape |
← 無効:「Web Watch」と同様です。 |
Attraction Panel |
- Web TV |
← 無効: 意味をなしません。 |
Attraction Panel |
- Web TV Landscape |
← 無効:「Web TV」と同様です。 |
Attraction Panel |
- Android |
|
Attraction Panel |
- Android Landscape |
|
Attraction Panel |
- Android Phone |
|
Attraction Panel |
- Android Phone Landscape |
|
Attraction Panel |
- Android Tablet |
|
Attraction Panel |
- Android Tablet Landscape |
|
Attraction Panel |
- Android Watch |
← 無効: GeneXus ではサポートされていません。 |
Attraction Panel |
- Android Watch Landscape |
← 無効:「Android Watch」と同様です。 |
Attraction Panel |
- Android TV |
← 無効: GeneXus ではサポートされていません。 |
Attraction Panel |
- Android TV Landscape |
← 無効:「Android TV」と同様です。 |
Attraction Panel |
- Apple |
|
Attraction Panel |
- Apple Landscape |
|
Attraction Panel |
- Apple Phone |
|
Attraction Panel |
- Apple Phone Landscape |
|
Attraction Panel |
- Apple Tablet |
|
Attraction Panel |
- Apple Tablet Landscape |
|
Attraction Panel |
- Apple Watch |
|
Attraction Panel |
- Apple Watch Landscape |
← 無効: 意味をなしません。 |
Attraction Panel |
- Apple TV |
|
Attraction Panel |
- Apple TV Landscape |
← 無効: 意味をなしません。 |
- ルートレイアウトとしてアートボードを定義しない (つまり、トークンの接尾語の表記規則を使用しない) 場合、GeneXus でメインテーブルが空の [ Any、既定の向き ] タイプのレイアウトが定義されます。
ベストプラクティス:
ベースレイアウトとして生成するために、トークンの接尾語の表記規則を使用せずに、パネルごとに 1 つ以上のレイアウトを定義してください。
- 同じパネルの 2 つ以上のレイアウトで 1 つのコントロール (各レイアウトで同じセマンティックを使用したレイヤー) を共有する場合、GeneXus はそのうちの 1 つの定義のみを考慮します。
ベストプラクティス:
デザインで、(同じセマンティックを持つ) パネルのすべてのレイアウトに同じコントロールを定義する場合、コントロールの定義がすべてのレイアウトで同じであることを確認してください。つまり、重複する各レイヤーのプロパティが同一である必要があります (アンカー、ディメンション、揃え位置、スタイル、リンクなど)。そうでない場合は、特定のレイアウトで変化するレイヤーの名前を変更することを検討してください。
- 同じパネルのバリエーションを表す 2 つのアートボード間にリンクを定義する場合、GeneXus は呼び出しを生成しません。
ベストプラクティス:
同じパネルのバリエーションを表すアートボード間にリンクを定義することは避けてください。このようなリンクには意味がありません。
- 無効な組み合わせのトークンを使用してアートボードを定義すると、GeneXus はパネルのそのパネルの生成を無視し、次のようなメッセージを表示します:
> アートボード '{アートボード名}' が無視されました (レイアウトの表記規則 '{トークンの組み合わせ}' はサポートされていません)
ベストプラクティス:
複数のレイアウトの定義に使用する文法の表記規則を確認し、トークンのシーケンスが GeneXus でサポートされているかどうかを確認してください。
- 表記規則の照合プロセスでは大文字と小文字は区別されません。フォルダのパッケージング用に予約されている「/」(スラッシュ) を除く、英数字以外の複数の文字を区切り文字として使用できます。
ベストプラクティス:
トークンの接尾語のシーケンスを英数字以外の複数の文字で区切ります。たとえば、「Attraction Panel Android」(あいまい) または「Attraction Panel / Android」(正しくない) は避けてください。代わりに、アートボードに「Attraction Panel」という名前のパネルの「Android」バリエーションを指定し、「Attraction Panel - Android」を使用してください。
ジェネレーター |
Android、Apple、Angular |
これらの表記規則は、
GeneXus 17 Upgrade 5 以降で利用できます。