【Android Studio&Kotlin】layout_weightで全体の割合を指定する方法「weightSum 属性」

こんにちは。YOSHITAKA(@YOSHITA19704216)です。

初心者
layout_weightで比率を設定する方法はありますか?

よしたか
学んだことをアウトプットしていきます。

 

この記事を読むことで
  • layout_weightで全体の割合を指定する方法と「weightSum 属性」の使い方がわかります。

layout_weightで全体の割合を指定する方法「weightSum 属性」

対象者

大前提
  • kotlinの画面レイアウトで比率で配分する方法がわからない方向けに書いています。

View の幅を1対1に設定

 View の幅を1対1になるように指定します。

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="horizontal">
<View
  android:layout_width="0dp"
  android:layout_height="50dp"
  android:layout_weight="0.5"
  android:background="#ff0000"/>
<View
  android:layout_width="0dp"
  android:layout_height="50dp"
  android:layout_weight="0.5"
  android:background="#00ff00"/>
</LinearLayout>

ここでは layout_width は 0dp としています。

ポイントは layout_weight の方です。

layout_weight は両方とも、0.5 に指定しています。

これによって、比率は1 対 1になります。

( 50% ずつになるようにしています。)

ポイント
  • 0.5 + 0.5 = 1 のように、全体が 1 になるように 0.5 を指定しましたが、 これは次のように 1 と 1 にしても同様です。この場合は重み付けの総和 (1 + 1 = 2) に対する割合が計算されます。
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="horizontal">
<View
  android:layout_width="0dp"
  android:layout_height="50dp"
  android:layout_weight="1"
  android:background="#ff0000"/>
<View
  android:layout_width="0dp"
  android:layout_height="50dp"
  android:layout_weight="1"
  android:background="#00ff00"/>
</LinearLayout>

重み付けの総和が 2 であるうち、それぞれの View の重みが 1 を占めるという考え方です。

重み付けの総和は weightSum 属性

weightSum を明示的に渡すと、それに対する割合となります。

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="horizontal"
  android:weightSum="3">
<View
  android:layout_width="0dp"
  android:layout_height="50dp"
  android:layout_weight="1"
  android:background="#ff0000"/>
<View
  android:layout_width="0dp"
  android:layout_height="50dp"
  android:layout_weight="1"
  android:background="#00ff00"/>
</LinearLayout>

とすると、上記の結果は次のようになります。

 

ポイント
  • weightSum が明示的に指定されない場合は、重みの総和が自動的に計算されます。指定した場合は、重みの総和と weightSum があっていなくても、 (重み)/(重みの総和) がレイアウトに利用されます。

まとめ

今回はKotlinのlayout_weightで全体の割合を指定する方法と「weightSum 属性」で全体の比率の重み付けを変更して画面レイアウトを調整する方法についてお伝えしました。

 

※プログラミングは習得中ですので、参考程度に記事を読んでください。

 

参考はこちら

https://android.keicode.com/basics/ui-layout-weight.php

あなたは「Web集客」に限界を感じていませんか?

サイトをただ作るだけで満足ですか?

あなたのサービスやコンテンツはとっても有益なものがたくさんあります。

良いコンテンツも埋もれてしまっては全く意味がありません。

正しい知識と実践で、SEO対策はもちろん、ユーザビリティーを考えたサイトを作りませんか?

私と歩めばWebマーケティング知識とWordPressスキルが定着し、サイト回遊率、再訪問がアップします。

しかも、これだけでは終わりません!!

その先の「攻めのメディア」と組み合わせ、あなたのサービスを広めて売上を伸ばしていきます。

サイトを育てて、長い間愛されることのできるWordPressサイトからの集客導線(ゴールデンルート)を一緒に作りませんか?

↓ ↓ ↓ ↓ ↓ ↓ 

おすすめの記事