android ボタンの配置(gravityとlayout_gravity)

gravityとlayout_gravityは、とっても似ていて混乱しやすいんですが、gravityは子の配置に影響をおよぼします。

layout_gravityは設定したウィジットそのものの位置を設定します。

例えば、LenearLayoutにgravityを設定すると
そのLenearLayoutに内包されるウィジットが右寄せや左寄せされます

また、ボタンやTextViewなどの場合は、gravityを設定すると、中の文字列に対して右寄せや中寄などの設定ができます。
layout_gravityを設定すると、ボタンやTextViewそのものの配置が影響を受けます。

下記の例ではLinearLayoutに対して :gravity=”right”を設定しているので、内包されるボタンたちが右寄せなります。
そしてボタンにはandroid:gravity=”center”と “center|bottom”をそれぞれ設定しています。
ボタンに内包されるものといことで、この場合はテキストの配置が影響をうけます。
二つ目のボタンでcenterとbottomをつなげて設定しています。| (オア)でつないで設定できます。スラッシュじゃありませんのでお気おつけて。


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

	<LinearLayout
	    android:layout_width="match_parent"
	    android:layout_height="wrap_content"
	    android:gravity="right"
	    android:orientation="vertical" >

	      <Button
			android:gravity="center"
			android:id="@+id/Button01"
			android:layout_width="100dip"
			android:layout_height="100dip"
			android:text="右">
 	      </Button>
	      <Button
			android:gravity="center|bottom"
			android:id="@+id/Button02"
			android:layout_width="100dip"
			android:layout_height="100dip"
			android:text="文字は中下よせ">
 	      </Button>
    </LinearLayout>

</LinearLayout>

20150304_01

カテゴリー: Android パーマリンク