Android相对布局示例
本教程通过示例说明Android中的相对布局。
Android中的布局对于基于GUI的应用程序非常重要。在之前的教程中,我们学习了线性布局,本教程介绍了Android中的相对布局。
相对布局
顾名思义,相对布局显示组件之间的相对位置。可以根据连续元素或者父组件指定位置。相对布局是Android提供的最灵活的布局。它允许我们在屏幕上定位元素。默认情况下,它将所有组件设置在布局的左上角。如下图所示,
相对布局
相对布局属性
下面是相对布局的属性。
Id:定义布局的if
Gravity:指定物体在x-y平面上的位置。
IgnoreGravity:增加后忽略某个部件上的重力。
相关布置施工人员
相对布局有四个不同的构造函数
RelativeLayout(context上下文)
RelativeLayout(context上下文,AttributeSet attrs)
RelativeLayout(context上下文,AttributeSet attrs,int defStyleAttribute)
RelativeLayout(context上下文,AttributeSet attrs,int defStyleAttribute,int defStyleRes)
相对布局方式
以下是几种重要的相对布局方法
setGravity():设置子视图的重心为居中、左或者右。
setHorizontalGravity():用于水平定位元素。
setVerticalGravity():用于垂直定位元素。
requestLayout():用于请求布局。
setIgnoreGravity():用于忽略任何特定元素的重力。
getGravity():用于获取元素的位置。
getAccessibilityClassName():返回对象的类名。
相对布局的XML属性
相对布局具有以下XML属性。
android:layout-above,它将给定组件的底边定位在给定组件ID的上方。
android:layout-alignBaseline,将给定组件的基线定位在给定组件ID的基线之上。
android:layout_alignBottom,在给定组件ID的底部对齐。
android:layout_alignEnd,在给定组件ID的末尾对齐。
android:layout_alignLeft,它将组件定位到给定的组件ID的左边。
android:layout_alignRight,它将组件定位到给定的组件ID上。
相对布局示例
下面的例子展示了Android中的相对布局。创建一个空的活动并将相对布局从调色板拖到屏幕上。然后拖动所需的GUI组件。这是xml文件。
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout android:layout_width="368dp" android:layout_height="495dp" xmlns:tools="http://schemas.android.com/tools" tools:layout_editor_absoluteX="8dp" tools:layout_editor_absoluteY="8dp" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:layout_marginLeft="141dp" android:layout_marginStart="141dp" android:layout_marginTop="89dp" android:text="Sign In" android:textColor="@android:color/black" android:textColorLink="@android:color/black" android:textSize="28sp" <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="43dp" android:text="ID" android:textColor="@android:color/black" android:textSize="18sp" android:typeface="normal" android:layout_below="@+id/textView" android:layout_alignLeft="@+id/textView5" android:layout_alignStart="@+id/textView5" android:layout_marginLeft="10dp" android:layout_marginStart="10dp" <EditText android:id="@+id/editText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:inputType="textPersonName" android:text="Enter ID" android:layout_alignBaseline="@+id/textView2" android:layout_alignBottom="@+id/textView2" android:layout_alignLeft="@+id/editText2" android:layout_alignStart="@+id/editText2" <TextView android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18sp" android:textColor="@android:color/black" android:text="Password" android:layout_alignBottom="@+id/editText2" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginLeft="32dp" android:layout_marginStart="32dp" <EditText android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:layout_below="@+id/editText" android:ems="10" android:text="Password" android:inputType="textPassword" <Button android:id="@+id/S" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:layout_below="@+id/editText2" android:layout_marginTop="32dp" android:text="SignIn" </RelativeLayout>