Let's try programming

Android Studio編 gravity と layout_gravity の違い

  • HOME »
  • Android Studio編 gravity と layout_gravity の違い
Android Studioでレイアウト作成時、画面の構成で layout_gravity と gravity の違いがわかってなかったのでメモしておこうと思います。
この属性は、LinearLayoutで表示する部品の位置付けをする属性なのですが毎回「gravityとlayout_gravity どっち使うんだっけ?」
と迷っていたので検証する事にしました。
 
まず各ボタンに layout_gravity と gravity の属性を付けて位置を確認。
わかりやすく gravity には。layout_gravityにはを塗りつけました。
<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:gravity="right"
               android:orientation="vertical"
               tools:context=".gravity">

    <Button
        android:text="right"
        android:gravity="right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#ffff000a"/>

    <Button
        android:text="right"
        android:layout_gravity="right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#ff0a00ff"/>

    <Button
        android:text="center"
        android:gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#ffff000a"/>

    <Button
        android:text="center"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#ff0a00ff"/>

    <Button
        android:text="left"
        android:gravity="left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#ffff000a"/>

    <Button
        android:text="left"
        android:layout_gravity="left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#ff0a00ff"/>

</LinearLayout>
gravity表示させると画像のようになりました。
の gravity ボタンの位置は変わらずテキストの表示位置が変わっていることがわかります。
一方、のlayout_gravity は、ボタンの位置が変わってる事がわかります。
結果
gravityは部品の中(テキスト文字などの)位置指定。
layout_gravityは、レイアウトの中での位置指定。
されてる事がわかりました。
 
 
 
 
 
 
 
 
では、次にLinearLayout内に gravity の設定をします。 
<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:gravity="right"
               android:orientation="vertical"
               tools:context=".gravity">
gravity2LinearLayout 内の gravity 属性に “right” と設定すると赤のボタンは全て右端に移動しました。
layout_gravity が属性についてる青ボタンはそのまま位置を保っています。
 
結果
LinearLayout の属性に gravity 属性で位置付けするとレイアウト内の部品は、layout_gravity で位置付けした部品以外は移動する。
という事がわかりました。
 
ちなみにLinearLayout の属性にLayout_gravity で位置付けしてもボタンの位置に変化はありませんでした。
layout_gravity は、あくまでレイアウト内での位置付けをするものだからレイアウト自体に設定しても意味がないという事でしょうか。
これですっきりしました(*´ェ`*)
次から迷わず書けそうです。
 
 

 

PAGETOP
Copyright © Goran All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.