3

ConstraintLayout以下で説明するユースケースに使用すべきではないことは確かですが、議論のために、垂直方向に整列されたコンポーネントを中央に配置する最良の方法は何でしょうか(重力を「中央」に設定し、垂直方向に設定するConstraintLayoutことで可能なため)LinearLayout) ?

4 つの側面すべてに拘束を追加することで、1 つのコンポーネントを中央に配置することができます。画面の中央に完全に配置されます。しかし、相互に制約された複数のコンポーネントがある場合、すべてのコンポーネントがオーバーラップする傾向があるため (上下に制約されている場合、これは予期される動作です)、新しく追加されたコンポーネントが中央のコンポーネントの下 (または上) になるため、注意が必要です。

中央のコンポーネントの上に 1 つのコンポーネントを追加し、下に 1 つのコンポーネントを追加することで、完璧であるとは思えないソリューションに行き着きました。そうすれば、コンポーネントは垂直に整列され、ほぼ中央に配置されます:)。

次に例を示します。

  1. 中央のコンポーネント:

中央のコンポーネント

  1. 上のコンポーネント、中央に拘束

ここに画像の説明を入力

  1. 下のコンポーネント、中央に拘束

ここに画像の説明を入力

上下に配置された他のコンポーネントは、それぞれ最も近いコンポーネント (上または下) に拘束されます。最初の画像でわかるように、「Country」フィールドの下に 3 つのコンポーネント、上に 2 つのコンポーネントがあるため、コンポーネントは完全に中央に配置されていません。どのデザイナーもこれに気付くでしょう:)、ConstraintLayoutコンポーネントのグループ全体を使用して中央に配置することは可能ですか(または、このように機能することを意図していません)

PS LinearLayoutwithgravity="center"は、おそらくこの場合の最適なソリューションです。

4

0 に答える 0