如何在水平线性布局中向右强制按钮,并在其左侧使用另一个按钮?

时间:2016-03-01 22:25:33

标签: android android-layout

我在线性布局(水平)中并排有2个按钮(左右)。如果右边是空白的话我想留下占据所有的空间。如果右边有内容,我希望它坚持到右边,然后留下尽可能多的剩余空间。我该怎么做?

我很确定我必须使用线性布局,因为相对布局会导致重叠。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"        
    android:gravity="center_vertical"
    android:orientation="horizontal" >

    <Button            
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:singleLine="true"   
        android:text="this text takes priority and kicks everything off screen (not desired behavior)" />

    <View
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_weight="1"/>  

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"             
        android:text="i need this text to take priority over the other button"/>
</LinearLayout>

2 个答案:

答案 0 :(得分:1)

RelativeLayout适用于此。通过alignParent将两个按钮固定到各自的两侧,并使用toLeftOf将第一个按钮定位到第二个按钮的左侧 - 您将获得一个灵活的左按钮,它不会与右侧重叠按钮。

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@id/button2"
        android:text="Left Button" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="Right Button"/>
</RelativeLayout>

答案 1 :(得分:0)

这可以通过相对布局轻松实现,并始终建议使用相对布局。只需先创建左边的视图,然后make是包装内容并分别使用匹配父项创建另一个视图。