我需要均衡四个按钮之间的空格。有什么办法可以做到吗?问题是第一个和最后一个按钮需要靠近边缘,剩下的空间应该等分为剩余的两个按钮和三个空格。
布局/ main.xml中:
<LinearLayout
android:id="@+id/setupButtons"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/setupButtonA1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_arrow_up"
android:enabled="true" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1">
<Button
android:id="@+id/setupButtonA2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_arrow_down"
android:layout_weight="0.5"
android:enabled="true" />
<Button
android:id="@+id/setupButtonB1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_arrow_up"
android:layout_weight="0.5"
android:enabled="false" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/setupButtonB2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_arrow_down"
android:enabled="false" />
</LinearLayout>
</LinearLayout>
感谢您的所有答案,正确的解决方案是:
<LinearLayout
android:id="@+id/setupButtons"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/setupButtonA1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_arrow_up"
android:enabled="true" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<Button
android:id="@+id/setupButtonA2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_arrow_down"
android:enabled="true" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<Button
android:id="@+id/setupButtonB1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_arrow_up"
android:enabled="false" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<Button
android:id="@+id/setupButtonB2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_arrow_down"
android:enabled="false" />
</LinearLayout>
答案 0 :(得分:4)
你可以使用下面的代码,我已经在linearlayout的所有控件中插入了权重1的空白视图。
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button" android:layout_weight="1"/>
<View
android:id="@+id/v2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button" android:layout_weight="1"/>
<View
android:id="@+id/v2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button" android:layout_weight="1"/>
<View
android:id="@+id/v2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button" android:layout_weight="1"/>
</LinearLayout>
答案 1 :(得分:0)
尝试android:layout_weight="0"
答案 2 :(得分:0)
使用android:weightSum =“4”这应该在布局中定义,这在你的代码中是缺失的。 并为每个按钮定义android:layout_weight =“1”
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="4"> /////------ i made changes here
<Button
android:id="@+id/setupButtonA2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_arrow_down"
android:layout_weight="1"
android:enabled="true" />
<Button
android:id="@+id/setupButtonB1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_arrow_up"
android:layout_weight="1"
android:enabled="false" />
<Button
android:id="@+id/setupButtonB1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_arrow_up"
android:layout_weight="0.5"
android:enabled="false" />
<Button
android:id="@+id/setupButtonB1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_arrow_up"
android:layout_weight="0.5"
android:enabled="false" />
</LinearLayout>
答案 3 :(得分:0)
在
中尝试android:layout_marginLeft="28dp"
android:id="@+id/setupButtonA2" and
android:id="@+id/setupButtonB1"
在布局适合时更改dp值
答案 4 :(得分:0)
我不会像其他人在这里那样编写示例代码,而是我会解释我是如何做的。
整个按钮条(width fill_parent,height wrap_content)将是RelativeLayout。 添加第一个按钮,设置layout_alignParentLeft = true 添加下一个按钮,设置layout_alignParentRight = true(这将是条带上的最后一个按钮) 添加LinearLayout(fill_parent,wrap_content),toLeftOf = lastButton,toRightOf = firstButton。这应该放在两个按钮的中间。将其方向设置为水平。 在此LinearLayout中,添加两个新的LinearLayouts (layout_width =“0dip”,layout_height = wrap_content)。设置layout_weight = 1。设置重力=中心。 在这两个LinearLayouts中,放置剩下的按钮。
无需为任何布局设置weightSum。所有按钮都是(wrap_content,wrap_content),或者你想要它们的大小。