【転】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を参照することはできません.
具体的な例は次のとおりです.
 
  
  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が見つからない場合、親コンテナはアンカーポイントとなり、親コンテナをレイアウトの根拠とします.