如何将按钮置于另外两个按钮之间?

时间:2010-09-01 18:58:26

标签: android

我正在尝试使用三个按钮获得一行。中间一个最左边,最右边一个。理想情况下,我希望中央按钮占据两侧之间的所有空间。现在,中央(菜单)按钮与左侧(上一个)按钮重叠。这就是我现在所拥有的:

<RelativeLayout android:layout_marginTop="-50dip" android:gravity="bottom" android:layout_height="wrap_content" android:layout_width="fill_parent">
<Button
android:id="@+id/previous_button"
android:layout_height="wrap_content"
android:layout_width="110px"
android:layout_alignParentLeft="true" 
android:text="@string/previous"
/> 

<Button
android:id="@+id/menu"
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:scaleType="center" 
android:text="@string/menu"
/> 

<Button
android:id="@+id/next_button"
android:layout_height="wrap_content"
android:layout_width="110px"
android:layout_alignParentRight="true"
android:text="@string/next"
/>        

1 个答案:

答案 0 :(得分:5)

您应避免使用尺寸的像素值。如果您确实要设置显式值,请使用dpi单位。

但在这种情况下,您应该可以使用layout_weights的简单LinearLayout。 layout_weight指示如何在窗口小部件之间分配剩余空间。如果您为一个窗口小部件赋值1,而其他窗口小部件为1,则1将使用所有额外空间。

<LinearLayout 
  android:layout_height="wrap_content"
  android:layout_width="fill_parent">
  <Button 
    android:id="@+id/previous_button"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_weight="0"/>
  <Button  
    android:id="@+id/menu"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
   android:layout_weight="1"/>
  <Button  
    android:id="@+id/next_button" 
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_weight="0"/>
</LinearLayout>