【転】Android Layoutの3:RalativeLayout(一)
10298 ワード
guxuetianya最終編集者hanyucola Android Layoutの3:RalativeLayout(一)から転載
2010-03-10 11:43
RalativeLayoutから,このレイアウトの親子ContainerにおけるすべてのWidgets間の位置が相対的であることが分かる.Widget AをWidgetの左下に置くか、Widgetの底辺とContainerの底辺の間に置くことができます.Containerまたはwidgetの他のwidgetsまたは親Containerに対する位置を指定できます.Containerまたはwidgetsは順番に並べられており、最初のContainerまたはwidgetが画面の中央にある場合、他のContainerおよびwidgetsに対して画面の中央に並べられます.XMLのLayoutファイルを使用して定義する場合は、参照されるContainerまたはwidgetsを定義する必要があります.
XMLのlayoutファイルでは、同じファイルのWidgetsを参照でき、他のWidgetsの相対的な位置を識別できます.
Container内のWidgetsの場所を識別します.trueまたはfalseを使用できる次の属性パラメータがあります.
1).android:layout_alignParentTop:widgetの上部とContainerの上部が重なることを示します.
2).android:layout_alignParentBottom:widgetの下部とContainerの下部が重なることを示します.
3).android:layout_alignParentLeft:widgetの左側とContainerの左側が重なることを示します.
4).android:layout_alignParentRight:widgetの右とContainerの右が重なることを示します.
5).android:layout_centerHorizontal:widgetがContainer水平方向の中間にあることを示します.
6).android:layout_centerVertical:widgetがContainer垂直方向の中間にあることを示します.
7).android:layout_centerInParent:widgetがContainer平面の真ん中にあることを示します.
同じContainer内の異なるwidgets間の相対位置を識別する場合、パラメータ値が他のwidgetsの適用である次の属性パラメータを使用できます.相対位置のwidgetsの参照の設定は以下の通りである:まずすべての参照されたwidgetsにラベルを付与しなければならず、android:idの属性を通じて@+id/widget 1のようなフォーマットを行い、その後他のwidgetの参照時に同じラベルを使用しなければならない.フォーマットは@id/widget 1のようなものである.例:widget Aが@+id/widget Aと識別された場合、widget Bはその属性に@id/widget Aでwidget Aを参照する.
1).android:layout_above:このwidgetがパラメータ値で識別されるwidgetの上にある必要があることを示します.
2).android:layout_below:このwidgetがパラメータ値で識別されるwidgetの下にある必要があることを示します.
3).android:layout_toLeftOf:このwidgetがパラメータ値で識別されたwidgetの左側にある必要があることを示します.
4).android:layout_toLeftOf:このwidgetがパラメータ値で識別されるwidgetの右側にある必要があることを示します.
5).android:layout_alignTop:widgetの上部にパラメータ値で識別する必要があるwidgetの上部が重なることを示します.
6).android:layout_alignBottom:このwidgetの下部にパラメータ値で識別しなければならないwidgetの下部が重なることを示します.
7).android:layout_alignLeft:widgetの左側にパラメータ値で識別しなければならないwidgetの左側が重なることを示します.
8).android:layout_alignRight:このwidgetの右側にパラメータ値で識別しなければならないwidgetの右側が重なることを示します.
9).android:layout_alignBaseLine:このwidgetのBaseLineがパラメータ値で識別しなければならないwidgetのBaseLineが重なることを示します.これは主にLabelまたは他のテキストを含むwidgetsに用いられる.
widgetを参照するときに、ファイルに定義されていないwidgetを参照することはできません.
具体的な例は次のとおりです.
2010-03-10 11:43
RalativeLayoutから,このレイアウトの親子ContainerにおけるすべてのWidgets間の位置が相対的であることが分かる.Widget AをWidgetの左下に置くか、Widgetの底辺とContainerの底辺の間に置くことができます.Containerまたはwidgetの他のwidgetsまたは親Containerに対する位置を指定できます.Containerまたはwidgetsは順番に並べられており、最初のContainerまたはwidgetが画面の中央にある場合、他のContainerおよびwidgetsに対して画面の中央に並べられます.XMLのLayoutファイルを使用して定義する場合は、参照されるContainerまたはwidgetsを定義する必要があります.
XMLのlayoutファイルでは、同じファイルのWidgetsを参照でき、他のWidgetsの相対的な位置を識別できます.
Container内のWidgetsの場所を識別します.trueまたはfalseを使用できる次の属性パラメータがあります.
1).android:layout_alignParentTop:widgetの上部とContainerの上部が重なることを示します.
2).android:layout_alignParentBottom:widgetの下部とContainerの下部が重なることを示します.
3).android:layout_alignParentLeft:widgetの左側とContainerの左側が重なることを示します.
4).android:layout_alignParentRight:widgetの右とContainerの右が重なることを示します.
5).android:layout_centerHorizontal:widgetがContainer水平方向の中間にあることを示します.
6).android:layout_centerVertical:widgetがContainer垂直方向の中間にあることを示します.
7).android:layout_centerInParent:widgetがContainer平面の真ん中にあることを示します.
同じContainer内の異なるwidgets間の相対位置を識別する場合、パラメータ値が他のwidgetsの適用である次の属性パラメータを使用できます.相対位置のwidgetsの参照の設定は以下の通りである:まずすべての参照されたwidgetsにラベルを付与しなければならず、android:idの属性を通じて@+id/widget 1のようなフォーマットを行い、その後他のwidgetの参照時に同じラベルを使用しなければならない.フォーマットは@id/widget 1のようなものである.例:widget Aが@+id/widget Aと識別された場合、widget Bはその属性に@id/widget Aでwidget Aを参照する.
1).android:layout_above:このwidgetがパラメータ値で識別されるwidgetの上にある必要があることを示します.
2).android:layout_below:このwidgetがパラメータ値で識別されるwidgetの下にある必要があることを示します.
3).android:layout_toLeftOf:このwidgetがパラメータ値で識別されたwidgetの左側にある必要があることを示します.
4).android:layout_toLeftOf:このwidgetがパラメータ値で識別されるwidgetの右側にある必要があることを示します.
5).android:layout_alignTop:widgetの上部にパラメータ値で識別する必要があるwidgetの上部が重なることを示します.
6).android:layout_alignBottom:このwidgetの下部にパラメータ値で識別しなければならないwidgetの下部が重なることを示します.
7).android:layout_alignLeft:widgetの左側にパラメータ値で識別しなければならないwidgetの左側が重なることを示します.
8).android:layout_alignRight:このwidgetの右側にパラメータ値で識別しなければならないwidgetの右側が重なることを示します.
9).android:layout_alignBaseLine:このwidgetのBaseLineがパラメータ値で識別しなければならないwidgetのBaseLineが重なることを示します.これは主にLabelまたは他のテキストを含むwidgetsに用いられる.
widgetを参照するときに、ファイルに定義されていないwidgetを参照することはできません.
具体的な例は次のとおりです.
1: xml version="1.0" encoding="utf-8"?>
2:
3: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
4:
5: android:layout_width="fill_parent"
6:
7: android:layout_height="wrap_content"
8:
9: android:padding="5px"
10:
11: >
12:
13: <TextView android:id="@+id/label"
14:
15: android:layout_width="wrap_content"
16:
17: android:layout_height="wrap_content"
18:
19: android:text="URL:"
20:
21: android:paddingTop="15px"/>
22:
23: <EditText android:id="@+id/entry"
24:
25: android:layout_width="fill_parent"
26:
27: android:layout_height="wrap_content"
28:
29: android:layout_toRightOf="@id/label"
30:
31: android:layout_alignBaseline="@id/label"
32:
33: />
34:
35: <Button android:id="@+id/ok"
36:
37: android:layout_width="wrap_content"
38:
39: android:layout_height="wrap_content"
40:
41: android:layout_below="@id/entry"
42:
43: android:layout_alignRight="@id/entry"
44:
45: android:text="OK"
46:
47: />
48:
49: <Button android:id="@+id/cancel"
50:
51: android:layout_width="wrap_content"
52:
53: android:layout_height="wrap_content"
54:
55: android:layout_toLeftOf="@id/ok"
56:
57: android:layout_alignTop="@id/ok"
58:
59: android:text="cancel"
60:
61: />
62:
63: RelativeLayout>
64:
65:
RelativeLayoutリレーションシップレイアウト:
formでの使い方:“@[+][package:]type:name”(@id/viewName)
テーマモードformでの使い方:「?[package:][type:]name」.(関連例はまだ見ていません)
android:layout_above VS android:layout_below:
現在のviewと関連するviewの垂直方向の関係を設定し、aboveは上関連viewの上、belowは関連viewの下、aboveは現在のviewの下境界と関連viewの上境界を揃えます.逆にbelowは、現在のviewと関連するviewの上境界を揃えます.
formでの使い方:“@[+][package:]type:name”(@id/viewName)
テーマモードformでの使い方:「?[package:][type:]name」.(関連例はまだ見ていません)
android:layout_alignBaseline
水平中心線の位置合わせに相当します.
android:layout_alignBottom
android:layout_alignLeft
android:layout_alignRight
android:layout_alignTop
以上は同じ理屈です.
android:layout_alignParentBottom
android:layout_alignParentLeft
android:layout_alignParentRight
android:layout_alignParentTop
android:layout_centerHorizontal
android:layout_centerInParentc
android:layout_centerVertical
以上の4つは、親コンテナ内の位置を指します.
android:layout_alignWithParentIfMissing
If set to true, the parent will be used as the anchor when the anchorcannot be be found for layout_toLeftOf, layout_toRightOf, etc.
trueに設定すると、toLeftOfまたはtoRightOfのviewが見つからない場合、親コンテナはアンカーポイントとなり、親コンテナをレイアウトの根拠とします.