我在收音机组中有两个看起来像这样的RadioButtons。
<RadioGroup
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/rb_PubAsMe"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:checked="true"
android:text="Self"
android:textColor="#000000" />
<RadioButton
android:id="@+id/rb_PubAsTeam"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Team"
android:textColor="#000000" />
</RadioGroup>
默认情况下,android向左调整,我想让这些按钮居中。当我尝试将每个按钮的重力设置为中心时,会发生以下情况。
相同代码,但将此行添加到每个RadioButton
android:gravity="center"
有没有人遇到过这个问题?如何让按钮移动到带有文本的中心?
|---------(Button)Text---------|---------(Button)Text---------|
答案 0 :(得分:3)
这看起来如何?
我使用了一些看不见的RadioButton“垫片”。 (以下代码)
我还尝试了只有一个“间隔”的各种组合......(我切换到“光”主题,快速模仿你的配色方案。)
但是顶部图像看起来比中间图像更加集中和平衡。
这是顶部布局的代码。
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal" >
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="invisible" />
<RadioButton
android:id="@+id/rb_PubAsMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:checked="true"
android:text="Self" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="invisible" />
<RadioButton
android:id="@+id/rb_PubAsTeam"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Team" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="invisible" />
</RadioGroup>
如果您更喜欢底部图片,只需删除第一个和最后一个“间隔符”并删除layout_weight
属性。希望有所帮助!
答案 1 :(得分:1)
我修改了你的代码。
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/rb_PubAsMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="Self"
android:textColor="#000000" />
<RadioButton
android:id="@+id/rb_PubAsTeam"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Team"
android:textColor="#000000" />
</RadioGroup>
按预期工作
答案 2 :(得分:0)
我能想到的唯一解决方案如下:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="2"
android:orientation="horizontal">
<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1" >
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="true"
android:layout_centerVertical="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
<!-- Repeat the above RelativeLayout -->
</LinearLayout>
您无法以这种方式将按钮放在RadioGroup中,但看起来您希望它看起来像。