2011-06-10 66 views
2

我有一个布局,我想让两个ToggleButton小部件水平居中;不是彼此相邻,而是仿佛每个人都以自己的一半为中心。 So, I'm wanting them to look like this.水平对齐两个表单小部件时遇到问题

But instead I get this.

这里是我的布局代码:

`<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
<LinearLayout android:id="@+id/pics" 
     android:layout_weight="2" 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:padding="8dp" 
     android:layout_alignParentTop="true" > 
    <ImageView android:id="@+id/prefix" 
      android:layout_weight="1" 
      android:layout_height="fill_parent" 
      android:layout_width="wrap_content" 
      android:padding="4dp"/> 
    <ImageView android:id="@+id/suffix" 
      android:layout_weight="1" 
      android:layout_height="fill_parent" 
      android:layout_width="wrap_content" 
      android:padding="4dp" /> 
</LinearLayout> 
<LinearLayout android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     orientation="horizontal" > 
    <LinearLayout android:layout_weight="1" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      orientation="horizontal" > 
     <ToggleButton android:id="@+id/lockPrefix" 
       android:textOn="Locked" 
       android:textOff="Unlocked" 
       android:checked="false" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal" /> 
    </LinearLayout> 
    <LinearLayout android:layout_weight="1" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      orientation="horizontal" > 
     <ToggleButton android:id="@+id/lockSuffix" 
       android:textOn="Locked" 
       android:textOff="Unlocked" 
       android:checked="false" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal" /> 
    </LinearLayout> 
</LinearLayout> 
<LinearLayout android:id="@+id/toolbar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_below="@id/pics" 
     android:padding="8dp" > 
    <Button android:id="@+id/mixButton" 
      style="@style/DefaultButton" 
      android:layout_height="wrap_content" 
      android:layout_width="90dp" 
      android:text="@string/main_mixButton" 
      android:onClick="mixButtonClick" /> 
    <Button android:id="@+id/exitButton" 
      style="@style/DefaultButton" 
      android:layout_height="wrap_content" 
      android:layout_width="90dp" 
      android:text="@string/main_exitButton" 
      android:onClick="exitButtonClick" /> 
</LinearLayout> 
</LinearLayout>` 

:您需要将每个按钮放置到LinearLayout(EDIT使XML可读)

回答

2

,设置layout_width这些布局为fill_parent,layout_weight至1和gravitycenter_horizontal。希望这可以帮助!

+0

我发誓,我试过了 - 必须把它放在'ToggleButton'而不是'LinearLayout'(加'安卓重力=“CENTER_HORIZONTAL”'做诀窍)。我还想知道这是否是最有效的方法 - 似乎添加了一些额外的视图元素,只是为了让它居中?似乎是唯一的选择。谢谢你的帮助! – areyling 2011-06-10 12:35:45

0

试试这个,切换按钮,删除嵌套的线性布局。 (我从24日线代替我想)

 
<LinearLayout android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     orientation="horizontal" 
     android:layout_weight="1" 
> 
     <ToggleButton android:id="@+id/lockPrefix" 
       android:textOn="Locked" 
       android:textOff="Unlocked" 
       android:checked="false" 
       android:layout_width="0dip" 
       android:layout_weight="0.5" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal" /> 

     <ToggleButton android:id="@+id/lockSuffix" 
       android:textOn="Locked" 
       android:textOff="Unlocked" 
       android:checked="false" 
       android:layout_width="0dip" 
       android:layout_weight="0.5" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal" /> 

< /LinearLayout> 
+0

感谢您的回答!这似乎使每个“ToggleButton”填充视图宽度的一半,但这不是我想要做的。 – areyling 2011-06-10 12:51:03