如何对齐右侧的按钮?

时间:2011-11-25 17:56:50

标签: android

我可以知道如何在这三个Textview旁边对齐Button吗?而不是仅仅在Textviews下面。 这是XML文件。          

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:orientation="vertical" android:id="@+id/linearlayout1"
        android:background="#000000">

            <TextView android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:id="@+id/textview1"
                android:layout_alignParentLeft="true" android:text="Textview1" />

            <TextView android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:text="Textview2"
                android:layout_alignParentLeft="true" android:id="@+id/Textview2" />

            <TextView android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:layout_alignParentLeft="true"
                android:text="Textview3" android:id="@+id/Textview3" />

        <RelativeLayout android:id="@+id/relativeLayout2"
            android:layout_width="wrap_content" android:layout_height="wrap_content">
            <Button android:id="@+id/button" android:layout_width="70px"
                android:layout_height="38px" android:text="Button"
                />
        </RelativeLayout>
    </LinearLayout>
</RelativeLayout>

4 个答案:

答案 0 :(得分:5)

IMO你应该把三个textview和按钮放在RelativeLayout中,并摆脱LinearLayout。当你只用一个布局时,有两个布局是没有意义的,因为每个ViewGroup都会增加布局和绘制通道的开销。做:

<RelativeLayout>
    <TextView android:id="@+id/tv1" android:layout_alignParentTop="true" android:layout_alignParentLeft="true"/>
    <TextView android:id="@+id/tv2" android:layout_alignParentLeft="true" android:layout_below="@id/tv1"/>
    <TextView android:id="@+id/tv3" android:layout_alignParentLeft="true" android:layout_below="@id/tv2"/>
    <Button android:id="@+id/btn" android:layout_toRightOf="@id/tv1"/>
</RelativeLayout>

我没有编译它,但它应该做你需要的。使用您给出的布局参数按钮(您可以将其对齐父级的顶部和右侧,或任何文本框的右侧等)。

RelativeLayout非常强大;你应该真正利用它的灵活性。

答案 1 :(得分:4)

使用Buttonandroid:layout_alignParentRight = "true"

的属性

因此Button的xml代码如下:

<Button android:id="@+id/button" 
        android:layout_width="70px"
        android:layout_height="38px" 
        android:text="Button" 
        android:layout_alignParentRight="true" <!-- align the Button on the right side -->
 />

答案 2 :(得分:0)

您也可以使用:

android:layout_gravity="end"

答案 3 :(得分:-1)

您的问题标题建议您只想将按钮与屏幕右侧对齐。在那种情况下,其他答案都没问题。但是,在您的问题中,您说您希望按钮“旁边”Textviews。在这种情况下,请阅读以下内容:

你的外LinearLayout是垂直方向的,所以它的所有直接孩子都会在彼此之下。根据您希望的外观,您可能希望在当前LinearLayout的外部或内部嵌套水平LinearLayout

A RelativeLayout将其子女相对于彼此定位,而不是相对于其外部的东西。也许你想要这些内容(我没有尝试编译):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:orientation="horizontal" android:id="@+id/linearlayout1"
        android:background="#000000">

    <Button android:id="@+id/button" android:layout_width="70px"
        android:layout_height="38px" android:text="Button" />

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent" android:layout_height="fill_parent"
            android:orientation="vertical" android:id="@+id/linearlayout1"
            android:background="#000000">

            <TextView android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:id="@+id/textview1"
                android:layout_alignParentLeft="true" android:text="Textview1" />

            <TextView android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:text="Textview2"
                android:layout_alignParentLeft="true" android:id="@+id/Textview2" />

            <TextView android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:layout_alignParentLeft="true"
                android:text="Textview3" android:id="@+id/Textview3" />
    </LinearLayout>
</LinearLayout>