最近のアクセス:
ページ
履歴
バックリンク
レスポンシブテーブル
GeneXus で
レスポンシブ Web アプリケーション
の設計に使用されるコントロールは、レスポンシブテーブルと呼ばれます。これは、
抽象レイアウト
の主要なコントロールです。
Bootstrap
などのフレームワークでは、グリッドというコンテナを利用できます。これはテーブルと似ていますが、
レスポンシブ Web デザイン
を実現するために、画面の幅に合わせて外観が調整されます。そのため、このコンテナによって、デバイスの種類や画面のサイズに関係なく、ユーザーが読みやすい形式で情報を表示できます。
GeneXus のレスポンシブテーブルは、Bootstrap の可変グリッドとして生成されます。
従来の
テーブルコントロール
とは異なり、レスポンシブテーブルはパーセント値に基づく設計に対応するため、内部のエレメントが常にデバイスの画面に合わせて配置されます。
レスポンシブテーブルのコントロール
1. テーブルのように見えますが、セルの幅はパーセント値で指定されます。
パーセント値は、4 つの異なる画面サイズに対応するように指定します (画面の幅によって指定)。
極小サイズのデバイス (xs) (768 px 未満のスマートフォン)
小さいサイズのデバイス (sm) (768 px 以上のタブレット)
中程度のサイズのデバイス (md) (992 px 以上のデスクトップ)
大きいサイズのデバイス (lg) (1200 px 以上のデスクトップ)
[ Responsive Sizes ] プロパティ (X Evolution 3)
を使用して、さまざまな画面に合わせた設定を行うことができます。
2. セルを複数の行にまたがって拡張することはできません。行幅は常に 1 となるため、変更できません。
3. 各サイズ (xs、sm、md、lg) の値は、各列のオフセット用に指定できます。さらに、列は画面サイズに応じて入れ替えることができます (移動)。
4. レスポンシブテーブルでは、セル内のコントロールの外観に関するプロパティを、
テーマ
クラスを使用して管理する必要があります。
レスポンシブテーブルの特徴
1. DIV エレメントとして生成
HTML の DIV エレメントとして生成されるため、列は固定されません。列は画面のサイズに応じて変化します。これは、
[ Responsive Sizes ] プロパティ (X Evolution 3)
を使用して設定できます。
2. レスポンシブテーブルとテーブルコントロールの動作の違い
レスポンシブテーブルと
テーブルコントロール
には動作に違いがあります。レスポンシブテーブルのセルの幅 (パーセント単位で測定) 内にコントロールが収まらない場合、コントロールの情報が重ねて表示されます。これに対して、一般的な
テーブルコントロール
は固定幅でないので、コンテンツを表示するのに必要な幅に広がり、折り返して表示されたり重ねて表示されたりすることはありません。
3. 画面サイズに応じて、画面のさまざまな部分の表示または非表示が可能
これを行うには、
テーマの条件付きクラスのプロパティ
を使用します。
また、デバイスの画面サイズに応じて、フォームを異なる方法で配置することもできます。
レスポンシブテーブルのレイアウトの問題
レスポンシブテーブルの行のセルは、すべての幅の合計が 100% を超えても、任意の幅に設定できます。このような場合、幅に収まりきれなかった残りのセルは改行されます。
例:
どの画面サイズでも、同じ行のセルを入れ替えたり、非表示にしたり、別の行にドロップダウンしたりできます。
ただし、別の行に表示されるセルを、上の行に移動させることはできません。
たとえば、大きいサイズの画面で 2 つのコントロールが横に隣り合う、次のフォームを設計する必要がある場合は、次のレイアウトを設計する必要があります。ただし、ほかの画面 (「極小」、「小」、「中」のサイズの画面) では、コントロールが上下に重なります。
[ すべての画面サイズで既定値を使用する ] ボタン
このボタンでは、 [ サイズ ] コンボボックスで選択した画面サイズだけではなく、すべてのコントロールおよびすべての画面サイズ (極小、小、中、大) の既定値を設定できます。既定の条件を理解するには、「
[ Responsive Sizes ] プロパティ
」を参照してください。
[ 既定 ] チェックボックス
オンにすると、選択したコントロールが既定値に設定されます。既定の条件を理解するには、「
[ Responsive Sizes ] プロパティ
」を参照してください。
参考情報
RWA でのレイアウトの調整
抽象エディターを使用する方法: レスポンシブテーブル内のセルの非表示
レスポンシブ Web アプリケーションを設計する方法: フォーム内のエレメントの非表示
レスポンシブ Web アプリケーションを設計する方法: グリッド内の列の非表示