ページ全体の自動レイアウト中にdraw.ioのコンテナとその内容をまとめて保持するには、自動レイアウトコンテナを使用します。draw.ioはこれを1つの図形として扱い、内部の配置をそのまま保ちます。選択範囲が重要です。レイアウトコンテナだけを選択すると、代わりに内部レイアウトが変更されます。高度なレイアウト図形とレイアウトコンテナ、レイアウトを適用して図を再配置する
このガイドでは、Mac上で複数の小さな図を配置し、それぞれをまとめて保持する方法を説明します。例では、Container A、A1、A2などの一般的なラベルを使用します。現在の公式デスクトップ版リリースページには、macOS用パッケージがあるバージョン32.6.1が掲載されています。現行ドキュメントのメニューに沿って操作する場合は、最新のデスクトップ版を使用してください。リリース32.6.1
内部レイアウトを維持するコンテナの種類
まず、図で「まとめて」とは何を意味するかを決めます。子要素を親の内側に保つこと、相対位置を維持すること、子要素を自動配置することは、それぞれ異なる要件です。
通常のコンテナは包含関係を設定します。図形を追加するには、コンテナの上にドラッグし、輪郭が紫色に変わったところでドロップします。複数のノードの背後に大きな長方形を描くだけでは、その関係は設定されません。コネクタは親コンテナの境界をまたぐことができます。コンテナ図形の折りたたみ/展開機能を有効または無効にする
一般的なレイアウトのドキュメントでは、レイアウトを実行すると通常のコンテナの内容がコンテナ内に配置されると説明されています。2つ以上の図形を含むコンテナを1つ選択すると、その内容だけが対象になります。そのため、通常のコンテナは包含には役立ちますが、既存の内部配置が変更されないことを保証するものではありません。レイアウトを適用して図をすばやく整理する
自動レイアウトコンテナは、ここで必要な境界をドキュメントに沿って提供します。図全体のレイアウト中、内部の図形やコネクタは再配置されず、各コンテナは1つの図形として扱われます。高度なレイアウト図形とレイアウトコンテナ
| 目的とする結果 | 適切な開始方法 | 重要な条件 |
|---|---|---|
| 内部の再配置を許可しつつ、ノードを親の内側に保つ | 通常のコンテナ | レイアウトを適用する前に、実際の包含関係を設定します。 |
| 各コンテナの内部レイアウトを維持しながらページを再配置する | 自動レイアウトコンテナ | 図全体のレイアウトを実行します。 |
| 表示される境界の内側でノードを継続的に配置する | Advancedライブラリの自動レイアウト図形 |
内部の編集に応じて、その図形独自のレイアウトが変化します。 |
| 手作業で決めた配置を正確に保ったまま移動する | 図形とコネクタをグループ化する | グループの移動はドキュメントで説明されています。グループ化だけで、あらゆる自動レイアウトで内部位置が維持されるとは限りません。 |
この表は、コンテナ図形、自動レイアウトコンテナ、グループについてドキュメントで説明されている違いをもとにした判断材料です。
まとまりを保つ小さなコンテナを作成する
境界を表示する場合は、自動フローレイアウト図形から始めます。通常の長方形がレイアウトコンテナのように動作すると想定せずに済みます。
内部の図を作成する
- Macのdraw.io Desktopで図を開きます。
- 左パネルで
Advanced図形ライブラリを探します。表示されていない場合は、More Shapesをクリックし、General図形ライブラリを選択してApplyをクリックします。 - 横または縦のフローレイアウト図形をキャンバスにドラッグします。
- 最初から用意されている図形を使い、
A1、A2、A3というラベルを付けた短い接続チェーンを作成します。 - チェーンを延長するには、ノードにカーソルを合わせ、方向矢印をクリックしてノードを複製し、接続します。ラベルをダブルクリックすると名前を変更できます。
フローレイアウトコンテナでは、方向矢印をクリックするたびに、カーソルを合わせていたノードから接続された図形が作成されます。配置はレイアウトによって決まります。ツリーコンテナでは、兄弟ノードや子ノードに関するルールが異なります。また、自動レイアウト図形は内容に合わせてコンテナのサイズも調整します。これらの手順は公式の自動レイアウト図形ガイドに沿っています。
B1、B2、B3のノードを含む2つ目の自動フローレイアウト図形を作成します。これらは説明用のラベルであり、必須の命名規則ではありません。コンテナを2つ作ると、コンテナ全体の移動と子要素の再配置を区別しやすくなります。
編集中は、各レイアウトコンテナの内側に少なくとも1つの要素を残してください。最後に残った要素を削除すると、レイアウトコンテナも削除されるとドキュメントに記載されています。既存のセクションを作り直す場合は、置き換える内容を用意するまで、最初の要素を残しておきます。高度なレイアウト図形とレイアウトコンテナ
表示する境界か透明な境界かを選ぶ
Advancedのレイアウト図形には周囲を囲むスイムレーンがあり、その境界への接続や境界からの接続を設定できます。Arrange > Insert > Layoutから作成するコンテナの境界は透明で、コネクタは内部の図形に接続する必要があります。外側の図をコンテナ自体に接続するか、特定のノードに接続するかに応じて選んでください。高度なレイアウト図形とレイアウトコンテナ
透明な境界を使う場合は、Arrange > Insert > Layoutを選択し、レイアウトを選びます。ノードの方向矢印に図形をドロップして、内部の図を作成します。左上の交差矢印ハンドルでレイアウトコンテナを移動できます。自動レイアウトを挿入する
内部レイアウトを変えずに外側のレイアウトを適用する
外側のレイアウトを実行する前に、各コンテナの内部配置を完成させ、図のセクション同士の関係を表す接続を追加します。たとえば、関係が2つのセクション全体に及ぶ場合は、Container Aの表示境界とContainer Bの表示境界を接続します。
次の手順で操作します。
- キャンバスの何もない部分をクリックして選択を解除します。
Arrange > Layoutを開きます。- 左から右への関係には
Horizontal Flowなど、適切なプリセットを選びます。 - 間隔のオプションを確認し、
Applyをクリックします。 - コンテナの位置と内部のノードの両方を確認します。
水平フローでは、コネクタが示す左から右への方向に図形が配置されます。Node Spacingは行または列の中の間隔を、Rank Spacingは隣り合う行または列の間隔を調整します。ラベルや接続にもっと余裕が必要な場合は、該当する間隔を広げてください。フローレイアウト
選択解除は重要な操作です。レイアウトコンテナだけが選択されていると、Arrange > Layoutを実行したときにページが再配置されるのではなく、コンテナの現在の内部レイアウトが置き換えられます。既存のコンテナのオプションを意図的に調整するには、そのコンテナを選び、Arrange > Layout > Edit Layoutを選択します。レイアウトを適用して図を再配置する
例を受け入れ確認として使います。A1、A2、A3は外側のレイアウトを適用しても内部配置が維持され、3つのBノードも同様に維持されるはずです。親コンテナは移動することがあります。この確認は、レイアウトコンテナが1つの図形として扱われるというドキュメントの説明に基づくものです。ここでデスクトップ版をテストした結果ではありません。高度なレイアウト図形とレイアウトコンテナ
さらに設定を調整する前に変更の原因を調べる
コンテナ内で子要素が再配置される
まずコンテナの種類と選択範囲を確認します。通常のコンテナでは内容がレイアウトされます。自動レイアウトコンテナを選択している場合は、レイアウトコマンドによって現在のレイアウトが置き換えられることがあります。間隔を変えたり図を作り直したりする前に、どちらの操作が行われたかを特定してください。レイアウトを適用して図をすばやく整理する、レイアウトを適用して図を再配置する
コンテナが拡大または縮小する
サイズが変わっても、必ずしも包含関係が失われたわけではありません。一般的なレイアウトのドキュメントによると、Resize Nodesを無効にしていても、コンテナはレイアウト後の内容に合わせてサイズが変わります。このオプションは個々のノードのサイズ変更を制御するもので、コンテナの境界を固定するものではありません。レイアウトを適用して図をすばやく整理する
境界のサイズ変更で子要素が引き伸ばされる
グループを手動でサイズ変更する場合は、グループを選択し、Style > PropertiesでResize Childrenを無効にします。ドキュメントに記載されているスタイルの同等設定はrecursiveResize=0で、グループに適用します。これは比率を保ったサイズ変更を制御する設定です。ドキュメントでは、自動レイアウト中に位置を維持するための切り替え設定とは説明されていません。子要素のサイズ変更を無効にしてグループ化した図形を個別にサイズ変更する
手作業で作成した配置を正確に維持したい
手作業で配置した形状を正確に保つ必要があるセクションでは、図形と内部コネクタを選択し、Arrange > GroupまたはCmd+Gを使います。作成されたグループをドラッグすると、メンバーをまとめて移動できます。これはサポートされている手動移動の方法です。グループ化のドキュメントは、任意のグループで自動レイアウトを常に停止できるとは示していません。図形とコネクタをグループ化/グループ解除する
レイアウトの結果が適切でない
別のプリセットを比較する前にCmd+Zを押して元に戻します。公式ガイドでは、レイアウトは図の現在の状態を使うため、複数のレイアウトを連続して適用しても同じ構造を一貫して再現できないと注意しています。同じ開始時の配置に戻すと、より有用な比較ができます。レイアウトを適用して図を再配置する
この作業では、2つのことを明確に決めてください。各コンテナ内のノードをどのレイアウトで配置するか、そしてどのレイアウトでページを配置するかです。自動レイアウトコンテナを使うと、ドキュメントに沿ってこの2つの操作を分けられます。まず内部のセクションを作成し、選択を解除して外側のレイアウトを適用し、続ける前に結果を確認します。
参照資料
- レイアウトを適用して図をすばやく整理する — draw.io
- 高度なレイアウト図形とレイアウトコンテナ — draw.io
- レイアウトを適用して図を再配置する — draw.io
- フローチャート、ツリー図、マインドマップ用の自動レイアウト図形 — draw.io
- コンテナ図形の折りたたみ/展開機能を有効または無効にする — draw.io
- 自動レイアウトを挿入する — draw.io
- フローレイアウト — draw.io
- 子要素のサイズ変更を無効にしてグループ化した図形を個別にサイズ変更する — draw.io
- 図形とコネクタをグループ化/グループ解除する — draw.io
- リリース32.6.1 — JGraph / drawio-desktop