こんにちは。半月くらい前に初めてAndroid StudioでXML周りを触りはじめた初心者です。
いつもはデザインのことをメインでやっていて、難しいコードのことはあまりわかっていないので温かい目で見て頂ければ幸いです。
今日は、XMLをやりはじめて私が一番つまったConstraintsのことについて覚え書き程度にまとめたいと思います。
Constraintsとは
そもそもConstraintとは、英語で「制約」を表す言葉です。
テキストビューやボタンなど、配置したもの同士の関係性を設定できるものだとイメージしてみると良いかもしれません。
具体的には
・画面の左端からこれくらい離れたところに設置したい
・このボタンとこのボタンはこれくらいの幅をあけて設置したい
みたいなのを設定できるという感じです。
Constraintsの設定の仕方
Constraintsがなにものかちょっとだけわかったところで、じゃあどうやって設定するんだというところに入ります。
上のスクショのように、〇をつかんで基準にしたいところまで引っ張ります。
このスクショではHello,Worldと書かれたTextViewの基準を、画面の一番上に設定したいので上に向かって引っ張っています。一番端までもっていくとたぶんTextViewが画面の天井まで飛んでいきますがそういう仕様なのでOKです。
左側と上側のConstraintsを設定したところです。
が、端にありすぎてこれではとっても見づらいのでもうちょっと右下におろしたいと思います。
Android Studioの画面右側に上の画像のような表示があります。
いまは左の数字も上の数字も0となっています。ここの数字が、さっき設定した基準になるところからどれくらいの幅をあけるの?という設定ができるところです。今回はとりあえず左32上24くらいで設定します。
ちなみに、画像下部のStart→StartOf parentなどで基準が今どこになっているかを確認できる(今は画面端を基準にしているのでparentと表示されています)ので、たくさんのボタンなどを設定し始めてどこが基準になっているかわからなくなったときはここを確認するといいです。
左32上24で設定しました。ちょっと右下にずれたので多少さっきよりは見やすくなったと思います。
こんな感じでConstraintsの設定は終わりです。
基本的にConstraintsは、左右と上下を各1つずつは必ず設定しなければいけません。
(画面のどこに配置するの?というのを表しているので、これがないままデバッグすると配置したものが画面のどこにあるかとか空気読んでくれないみたいです。)
補足として、今回は上と左しか設定しませんでしたが、上下両方や左右両方を設定すると設定した幅の中央に配置してくれる(上の画像参照)ので、きれいにど真ん中に配置したい!というときは両方を設定してみると良いかもしれません。
逆にそれ以外の時は上下左右すべてを設定してしまうのはあまりお勧めしません。
左からの距離と右からの距離、また上からの距離と下からの距離を二重に設定してしまうことになるので、機種によって画面サイズが変わると指定した幅がうまくいかなくなることがあります。
Constraintsを設定してしまったけれどやっぱりいらないから消したいな、というときは
・消したい矢印をクリックして選択し、deleteする
・下に載せる画像のところをクリックする
のどちらかで消せます。
最後に
つたない技術力と文章力なので伝わらないことも多いかと思いますが、ここまで読んでいただいてありがとうございました。