android layout_gravityとgravity
1503 ワード
LinearLayoutには2つの非常に似た属性があります.
android:gravityとandroid:layout_gravity.(RelativeLayoutにはandroid:layout_gravity属性はありません)
彼らの違いはandroid:gravity属性がそのviewの中の内容に対する限定である.例えばbuttonの上のtextである.このtextのviewに対する左、右などの位置を設定できます.android:layout_gravityは、そのviewが親viewに相対する位置を設定するために使用されます.例えばbuttonがlinearlayoutにある場合、そのbuttonをlinearlayoutの左、右などの位置に置くには、この属性設定を使用します.つまりandroid:gravityは、Viewコンポーネントに対するViewのコンテンツの位置合わせを設定するために使用され、android:layout_gravityでは、Containerに対するViewコンポーネントの位置合わせを設定します.
コード実装:
SDKを見ると、名前の通りButtonコンポーネントの文字の位置合わせを設定するためのsetGravityメソッドがあります.
LinearLayoutのLayoutParamsは、やはり発見されました.中にgravity属性があります.これは容器自体に対するコンポーネントの位置を設定するために使われていると信じています.
android:gravityとandroid:layout_gravity.(RelativeLayoutにはandroid:layout_gravity属性はありません)
彼らの違いはandroid:gravity属性がそのviewの中の内容に対する限定である.例えばbuttonの上のtextである.このtextのviewに対する左、右などの位置を設定できます.android:layout_gravityは、そのviewが親viewに相対する位置を設定するために使用されます.例えばbuttonがlinearlayoutにある場合、そのbuttonをlinearlayoutの左、右などの位置に置くには、この属性設定を使用します.つまりandroid:gravityは、Viewコンポーネントに対するViewのコンテンツの位置合わせを設定するために使用され、android:layout_gravityでは、Containerに対するViewコンポーネントの位置合わせを設定します.
コード実装:
SDKを見ると、名前の通りButtonコンポーネントの文字の位置合わせを設定するためのsetGravityメソッドがあります.
LinearLayoutのLayoutParamsは、やはり発見されました.中にgravity属性があります.これは容器自体に対するコンポーネントの位置を設定するために使われていると信じています.
Button button = new Button(this);
button.setText("One");
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
// Android:layout_gravity
lp.gravity = Gravity.RIGHT;
button.setLayoutParams(lp);
// Android:gravity
button.setGravity(Gravity.CENTER);
LinearLayout linear = new LinearLayout(this);
// , LinearLayout , ! 。
linear.setOrientation(LinearLayout.VERTICAL);
linear.addView(button);
setContentView(linear);
RelativeLayoutでgravityプロパティを設定するparams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
mContainer.addView(progress,params);