Android:水平放置单选按钮
Posted
技术标签:
【中文标题】Android:水平放置单选按钮【英文标题】:Android:placing the radio buttons horizontally 【发布时间】:2013-02-06 23:18:38 【问题描述】:下面是我的相对布局..我试图将单选按钮放在编辑文本上方
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:background="#FFFFFF" >
<ImageView
android:id="@+id/fbreplycancel"
android:layout_
android:layout_
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/fbcancel" />
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_
android:layout_
android:layout_alignParentRight="true"
android:layout_below="@+id/fbcancel" >
<Spinner
android:id="@+id/replyspinner"
android:layout_
android:layout_
android:layout_alignLeft="@+id/fbshare"
android:layout_alignRight="@+id/fbshare"
android:layout_below="@+id/fbshare"
android:layout_marginTop="16dp"
android:drawSelectorOnTop="true"
android:entries="@array/fbcommentlist"
android:visibility="gone" />
<Button
android:id="@+id/fbshare"
android:layout_
android:layout_
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:background="@drawable/fbbuttons"
android:text="@string/share" />
<ImageView
android:id="@+id/fbpeople"
android:layout_
android:layout_
android:layout_above="@+id/fbshare"
android:layout_centerHorizontal="true"
android:layout_marginBottom="19dp"
android:background="@drawable/people2"
android:drawSelectorOnTop="true"
android:paddingTop="20dp" />
<RadioButton
android:id="@+id/radio2"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:text="RadioButton" />
</RelativeLayout>
<View
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/imageView1"
android:background="#3b5998" />
<ImageView
android:id="@+id/imageView1"
android:layout_
android:layout_
android:layout_alignBottom="@+id/fbcancel"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:paddingRight="2dp"
android:src="@drawable/askabud" />
<TextView
android:id="@+id/fbcommentpostedby"
android:layout_
android:layout_
android:layout_alignLeft="@+id/fbedittext"
android:layout_alignRight="@+id/fbcommentdisplay"
android:layout_below="@+id/imageView1"
android:layout_marginTop="15dp"
android:textColor="#000000" />
<TextView
android:id="@+id/fbcommentdisplay"
android:layout_
android:layout_
android:layout_alignLeft="@+id/fbedittext"
android:layout_below="@+id/fbcommentpostedby"
android:layout_toLeftOf="@+id/relativeLayout1"
android:textColor="#000000" />
<TextView
android:id="@+id/fbtextview"
android:layout_
android:layout_
android:layout_alignBottom="@+id/imageView1"
android:layout_toLeftOf="@+id/fbreplycancel"
android:layout_toRightOf="@+id/imageView1"
android:text="@string/replyrecommend"
android:textSize="18sp"
android:textColor="#000000"/>
<TextView
android:id="@+id/fbplacename"
android:layout_
android:layout_
android:layout_alignLeft="@+id/fbcommentdisplay"
android:layout_alignRight="@+id/fbcommentdisplay"
android:layout_below="@+id/fbcommentdisplay"
android:textColor="#000000" />
<EditText
android:id="@+id/fbedittext"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_below="@+id/fbplacename"
android:layout_marginLeft="19dp"
android:layout_marginTop="45dp"
android:layout_toLeftOf="@+id/relativeLayout1"
android:background="@drawable/roundcorners"
android:ems="10"
android:hint="@string/fbhint"
android:lines="6"
android:scrollHorizontally="true"
android:textSize="14sp"
android:windowSoftInputMode="stateHidden" />
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_below="@+id/fbplacename" >
<RadioButton
android:id="@+id/radio0"
android:layout_
android:layout_
android:checked="true"
android:text="1"
/>
</RadioGroup>
<RadioGroup
android:id="@+id/radioGroup2"
android:layout_
android:layout_
android:layout_alignTop="@+id/radioGroup1"
android:layout_toLeftOf="@+id/relativeLayout1" >
<RadioButton
android:id="@+id/radio0"
android:layout_
android:layout_
android:checked="true"
android:text="3" />
<RadioButton
android:id="@+id/radio2"
android:layout_
android:layout_
android:text="RadioButton" />
</RadioGroup>
<RadioButton
android:id="@+id/radio1"
android:layout_
android:layout_
android:layout_alignTop="@+id/radioGroup2"
android:layout_toLeftOf="@+id/radioGroup2"
android:text="2" />
</RelativeLayout>
我很难将它们水平排列。感谢任何帮助。
【问题讨论】:
orientation="horizontal" in radiogroup ? 如何让它们之间的间距相等 【参考方案1】:要将无线电组(或任何其他视图)置于其他上方,只需执行以下操作:
android:layout_above="@+id/view_below"
改变刚刚设置的方向:
android:orientation="horizontal"
使用layout_weight
:
<RadioGroup
android:id="@+id/radio_group"
android:layout_
android:layout_
android:orientation="horizontal"
android:layout_above="@+id/view_below" >
<RadioButton
android:id="@+id/radio1"
android:layout_
android:layout_weight="1"
android:layout_
android:checked="true"
android:text="First" />
<RadioButton
android:id="@+id/radio2"
android:layout_
android:layout_weight="1"
android:layout_
android:text="Second" />
</RadioGroup>
【讨论】:
我将编辑答案并将代码放在一起。检查是否与您的相同。 @Sergio...谢谢你..完美 layout_alignParentLeft="true" 是绝对必要的吗?我无法使其正常工作,但我也在跨平台 Xamarin 应用程序的上下文中工作,其中可能会有所不同。 否 @FrankSchwieterman,该属性不是必需的,我已将其删除,谢谢。至于你的问题,你得到了什么?垂直单选按钮或不好的分布宽度值?就像你说的,这可能是 Xamarin 功能的问题 我得到的结果是按钮没有拉伸以填充父空间。我可以检查的容器有什么要求吗?谢谢。【参考方案2】:您可以使用表格布局而不是相对布局。将行插入到表格布局中,并将单选按钮放置在表格行内..
对于等间距,遵循以下步骤
<TableRow
android:id="@+id/tableRow2"
android:layout_
android:layout_
android:layout_marginTop="50dp" >
<RadioButton
android:id="@+id/button2"
android:layout_
android:layout_
android:layout_weight="1"
android:text="@string/btnReject"
android:onClick="onCallRejectButton" />
<RadioButton
android:id="@+id/button1"
android:layout_
android:layout_
android:layout_weight="1
android:onClick="onCallAcceptButton"
android:text="@string/btnAccept" />
</TableRow>
【讨论】:
这不是一个好主意,因为用户可以同时选择它们并且不能取消选择它们。通过单选组用户可以只选择其中一个,通过选择新的单选按钮,旧的选择单选按钮将被取消选择。【参考方案3】:android:orientation="horizontal" 就这样做。在 radiogroup 标签中输入方向水平属性
<RadioGroup
android:id="@+id/radio"
android:layout_
android:layout_
android:orientation="horizontal">
<RadioButton
android:id="@+id/radioMale"
android:layout_
android:layout_
android:text="Male"
android:checked="true" />
<RadioButton
android:id="@+id/radioFemale"
android:layout_
android:layout_
android:text="Female" />
</RadioGroup>
【讨论】:
【参考方案4】:您只需将 Radio Group 方向设置为水平。
<RadioGroup
android:id="@+id/radio_group_forgot_password"
android:layout_
android:layout_
**android:orientation="horizontal"**
>
【讨论】:
以上是关于Android:水平放置单选按钮的主要内容,如果未能解决你的问题,请参考以下文章