繁体   English   中英

如何对齐右侧的按钮?

[英]How to align the button at right side?

我可以知道如何在这三个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>

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非常强大; 你应该真正利用它的灵活性。

使用attribut为你的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 -->
 />

您还可以使用:

android:layout_gravity="end"

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

您的外部LinearLayout是垂直方向的,因此它的所有直接子项都将在彼此之下。 这依赖于你想怎么这一下,你可能要嵌套水平LinearLayout外或当前的内部LinearLayout

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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM