この記事は
Androidで画面を構成していく時、height
やwidth
などを指定することは頻繁にあることと思います。
このような時に、多くの場合は、wrap_content
やmatch_parent
を使いますが、たまにandroid:layout_width="0dp"
のような表現を見ることがあります。
ではこれらの違いを見ていきましょう
wrap_content:子に合わせる
これはその中に入るビューの大きさに任せるよ、という意味です。
つまり、例えばlayout_height="wrap_content"
で指定されたButtonの中にlayout_height="100dp"
のTextViewを入れたとします。その場合、Buttonの高さはTextViewに合わせて100dpになります。
match_parent:親に合わせる
これは、親(1つ上のビュー)の大きさに合わせるよ、という意味です。
例えば、layout_height="100dp"
としているButtonの中にlayout_height="match_paretnt"
で高さを指定したTextViewを入れるとします。その場合、TextViewの高さは親であるButtonと同じ高さである100dpに設定されます。
0dp:match_constraint
これは
ConstraintLayout
を使う上での話です!
ここでタイトルに戻ります。android:layout_width="0dp"
とは何なのでしょうか。
この0dp
とは実はmatch_constraint
のことを言っています。
つまり、親がConstraintLayout
の場合、相対的に変化する親のConstraintLayout
の高さに応じて中身も高さを変えるよ、ということになります。