49
46

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Android Studio 2.2 Layout EditorのConstraintLayoutを設定する各UI部品

Last updated at Posted at 2016-06-12

ConstraintLayoutはAndroid Studio2.2 Preview3では新規プロジェクト作成時のデフォルトのUI要素となっています。
良い悪いはおいておいて、そのため一旦学んでおくと良いと思います。
ちょっとAndroid Studio上のUIの部品がたくさんあって、どうやって操作するのか戸惑ったのでまとめてみます。

Constraint

Constraintは制約という意味があります。Constraintを制約と読み替えて読むとわかりやすいかもしれません。

Constraintをつける

ConstraintでRelativeLayoutのように他のViewとの関係を定義できます。
丸いhandleをドラッグアンドドロップすることでつけられます。
constraint.gif

デフォルトのマージンの設定

Constraintをつけると自動的に上の8となっているdp分marginが入ります。
このmarginのdpはこの「8」となっているところ押すと切り替えができます。
image

左右または上下のConstraint設定されている場合の割合の調整

同様に親レイアウトからの制約も設定できます。
image
右と左両方のConstraintが設定されている場合は波線になり、このモードの時は左右の比率を設定することができます。
constraint_position.gif

ベースラインを合わせるConstraintをつける

カーソルを合わせてしばらく待つとベースラインを合わせることができるhandleが出てくるので、それをドラッグアンドドロップすることでcontraintをつけられます。
constraint_base.gif

Viewの大きさの調整

右側にこんなのが出ていると思います。
image
しばらくカーソルを合わせていると説明が出てきます

Fixed

「Fixed」となっています。「Fixed」の場合はレイアウトに「20dp」などと設定されている状態です。
image

WrapContent

お馴染みのWrapContentです。文字や画像の大きさによってViewの大きさが決定されます。
image

AnySize

ここが一番抑えておくべきポイントです。
Constaintを満たす最大のViewの大きさにすることができます。
この画像は小さい画像なので横をWrapContentにするとすごく縮んでいます。
それをAnySizeにすると以下のように変化します。
言い換えればmatch constraintと言えそうです。

WrapContent image
AnySize image

レイアウトの要素一覧を表示する

imageでよく利用するものだけ表示されるので、それと全てが切り替えできます。
constraint_properties.gif

Constraintが見えるかどうかを切り替える

磁石マークimageで先程から表示されている矢印などのConstraintの表示を切り替えます

Auto Connectを使うかどうか切り替える

AutoConnectを使わないとViewを置くだけでは、Constraintはつきません。
AutoConnectを使うとViewをおいた時に近くのViewから勝手にConstraintをつけてくれます
constraint_auto_connect.gif

Constraintを消す

ViewについているConstraintを全て消してくれます。
image

InferConstraint

豆電球を押すことで、すでに置かれているViewに自動でConstraintをつけることができます。
constraint_infer.gif

Viewを整頓する

shiftを押しながら複数選択して、いろいろ行うことができます。
ただこれをやるだけではConstraintはつかないようなので、別に付ける必要があります。(プレビューだけつく)

マージンを調整

デフォルトのマージンに揃えたり、それぞれレイアウトにマージンを分配したり、
constraint_pack.gif
それぞれを同じく大きくしたりできます。
constraint_pack2.gif

Viewを整列

複数選択してそれっぽいボタンを押せばできます。
constraint_arrange.gif
Viewを真ん中に持っていくこともできます。
constraint_arrange2.gif

Guide Lineを入れる

ガイドラインを入れてレイアウトを揃えることもできます。(Material Design的にはKeyLine? https://material.google.com/layout/metrics-keylines.html#metrics-keylines-keylines-spacing )

constraint_guide.gif

ちなみにこれを使うと実際にレイアウトにViewが入るので、それを元にレイアウトしていくことになります
image

Constraintのエラーを治す

だいたいがConstraintが足りなくてエラーが出ているのでInfer Constraintするか、Constraintを設定してあげましょう。(Viewの場所や大きさが不定になっていてエラーになるようです)
constraint_error.gif

まとめ

結構難しいイメージが有りましたが、覚えてしまえばそんなに大変でもなかったのと、Viewの整列など意外と直感的に操作できるので良いかもしれません。

49
46
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
49
46

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?