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>

