Android 如何有序地将一些视图居中并相应地对齐它们

Android 如何有序地将一些视图居中并相应地对齐它们,android,android-layout,layout,Android,Android Layout,Layout,我希望有序地对齐视图并将其放置在布局上。如图中所示,第一个文本视图< /代码>是标题,它应该放置在顶部,并集中在布局的中间。第二个textview用于显示一些文本,它应该放在布局的中间下方。最后,按钮>代码>布局,它应该放置在布局的底部,并位于中间。应用下面的代码并不能完成这项工作,它会使所有视图混合 XML: //试试这个方法,希望这能帮助你。。。 您需要在相对布局中定义视图之间的关系,以下是正确的代码: <?xml version="1.0" encoding="utf-8"?&g

我希望有序地对齐视图并将其放置在布局上。如图中所示,第一个<代码>文本视图< /代码>是标题,它应该放置在顶部,并集中在布局的中间。第二个
textview
用于显示一些文本,它应该放在布局的中间下方。最后,<代码>按钮>代码>布局,它应该放置在布局的底部,并位于中间。应用下面的代码并不能完成这项工作,它会使所有视图混合

XML:


//试试这个方法,希望这能帮助你。。。

您需要在相对布局中定义视图之间的关系,以下是正确的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.meetingpointlocator_03" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <TextView
            android:id="@+id/introScreenTitleID"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical|center_horizontal"
            android:gravity="top|center"
            android:text="@string/introScreenTitle"
            android:textColor="@color/introScreenTitleColor"
            android:textSize="@dimen/introScreentitle" >
        </TextView>

        <TextView
            android:id="@+id/introScreenContentID"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical|center_horizontal"
            android:text="Some Text"
            android:textColor="@color/introScreenContentscolor"
            android:textSize="@dimen/introScreenContentFontSize" 
            android:layout_centerHorizontal="true"
            android:gravity="center"
            android:layout_below="@+id/introScreenTitleID">
        </TextView>

        <Button
            android:id="@+id/introButtonID"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_centerHorizontal="true"
            android:text="@string/introButtonText"
            android:layout_below="@+id/introScreenContentID" />
    </RelativeLayout>
</LinearLayout 

让我们尝试以下代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.meetingpointlocator_03" >

<Button
    android:id="@+id/introButtonID"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_gravity="center"
    android:text="@string/introButtonText" />

<TextView
    android:id="@+id/introScreenTitleID"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="27dp"
    android:gravity="top|center" android:textColor="@color/introScreenTitleColor"
    android:text="@string/introscreentitle" 
    android:textSize="@dimen/introScreentitle"  />

<TextView
    android:id="@+id/introScreenContentID"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/introButtonID"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/introScreenTitleID" android:textColor="@color/introScreenContentscolor" android:textSize="@dimen/introScreenContentFontSize" 
    android:text="Some Text" />

</RelativeLayout>

输出是


使用相对布局,您可以设置对布局中其他项目的引用。因此,例如,如果您想要文本视图下面的按钮,您需要引用与下面的引用类似的id

android:layout_alignBottom="@+id/btnSatOff"
您还可以使用边距间距来获取要在项目之间查找的间距

当然,您可能可以使用一个简单的线性布局,类似于您开始使用的布局,并使用布局设置以您想要的方式对齐项目

顶部文本视图将是
layout\u gravity=“center”

中间的文本视图将是
layout\u gravity=“center\u horizontal”


按钮应该是
layout\u gravity=“center | bottom”

看看这个:谢谢,但是你能告诉我如何控制第二个文本视图的对齐吗?我想在中间,但有点鲍恩沃德,如何实现这一点?你有没有检查上面的答案这个答案,它有正确的路线以及。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.meetingpointlocator_03" >

<Button
    android:id="@+id/introButtonID"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_gravity="center"
    android:text="@string/introButtonText" />

<TextView
    android:id="@+id/introScreenTitleID"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="27dp"
    android:gravity="top|center" android:textColor="@color/introScreenTitleColor"
    android:text="@string/introscreentitle" 
    android:textSize="@dimen/introScreentitle"  />

<TextView
    android:id="@+id/introScreenContentID"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/introButtonID"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/introScreenTitleID" android:textColor="@color/introScreenContentscolor" android:textSize="@dimen/introScreenContentFontSize" 
    android:text="Some Text" />

</RelativeLayout>
android:layout_alignBottom="@+id/btnSatOff"