我有一个放射线组,其中有4个radiobuttons。我希望它们对齐为两条水平线,即水平放置两个radiobutton,水平放置另外两个radiobuttons,放在第一个水平放射线按钮下方。
如何在不改变其功能的情况下完成此任务
这意味着只能选择一个单选按钮。
这是我的简单代码:
<RadioGroup
android:id="@+id/radiogroup_relation_options"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/HeadingText"
android:background="#4269c6" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<RadioButton
android:id="@+id/radiobutton_friend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:button="@drawable/custom_radiobutton"
android:padding="5dp"
android:paddingLeft="10dp"
android:text="Friend"
android:textSize="15sp" />
<RadioButton
android:id="@+id/radiobutton_business"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:button="@drawable/custom_radiobutton"
android:padding="5dp"
android:paddingLeft="10dp"
android:text="We've done Business Together"
android:textSize="15sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<RadioButton
android:id="@+id/radiobutton_colleague"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:button="@drawable/custom_radiobutton"
android:padding="5dp"
android:paddingLeft="10dp"
android:text="Colleague"
android:textSize="15sp" />
<RadioButton
android:id="@+id/radiobutton_other"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:button="@drawable/custom_radiobutton"
android:padding="5dp"
android:paddingLeft="10dp"
android:text="Other"
android:textSize="15sp" />
</LinearLayout>
</LinearLayout>
</RadioGroup>
答案 0 :(得分:1)
这是另一个简单的解决方案。
<强> main_activity.xml 强>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/one_radio_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:text="one" />
<RadioButton
android:id="@+id/two_radio_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:text="two" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/three_radio_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:text="three" />
<RadioButton
android:id="@+id/four_radio_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:text="four" />
</LinearLayout>
</LinearLayout>
<强> MainActivity.java 强>
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private RadioButton mOneRadioButton;
private RadioButton mTwoRadioButton;
private RadioButton mThreeRadioButton;
private RadioButton mFourRadioButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mOneRadioButton = (RadioButton) findViewById(R.id.one_radio_btn);
mTwoRadioButton = (RadioButton) findViewById(R.id.two_radio_btn);
mThreeRadioButton = (RadioButton) findViewById(R.id.three_radio_btn);
mFourRadioButton = (RadioButton) findViewById(R.id.four_radio_btn);
mOneRadioButton.setOnClickListener(this);
mTwoRadioButton.setOnClickListener(this);
mThreeRadioButton.setOnClickListener(this);
mFourRadioButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.one_radio_btn:
mOneRadioButton.setChecked(true);
mTwoRadioButton.setChecked(false);
mThreeRadioButton.setChecked(false);
mFourRadioButton.setChecked(false);
break;
case R.id.two_radio_btn:
mOneRadioButton.setChecked(false);
mTwoRadioButton.setChecked(true);
mThreeRadioButton.setChecked(false);
mFourRadioButton.setChecked(false);
break;
case R.id.three_radio_btn:
mOneRadioButton.setChecked(false);
mTwoRadioButton.setChecked(false);
mThreeRadioButton.setChecked(true);
mFourRadioButton.setChecked(false);
break;
case R.id.four_radio_btn:
mOneRadioButton.setChecked(true);
mTwoRadioButton.setChecked(false);
mThreeRadioButton.setChecked(false);
mFourRadioButton.setChecked(true);
break;
}
}
}
答案 1 :(得分:0)
RadioGroup是LinearLayout的子类,如果你希望它支持多行,那么需要覆盖它,但现在有这样的小部件可以使用:MultiLineRadioGroup,帮助样本可以帮助你。
答案 2 :(得分:0)
你可以通过使用2个radioGroups来实现这个目标
RadioGroup
android:orientation = "horizontal"
RadioGroup
。RadioGroups
和RadioButtons
的ID不同。使用setOnCheckedChangeListener
在两个组上设置相同的OnCheckedChangeListener
。
//assuming activity implements OnCheckedChangeListener
rg1.setOnCheckedChangeListener(this);
rg2.setOnCheckedChangeListener(this);
在其他广播组上调用clearCheck
(如果已在第2组中执行检查,则为第1组)
RadioButton
。答案 3 :(得分:0)
尝试两种不同的LinearLayout:
<RadioGroup
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1">
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal">
<RadioButton
android:id="@+id/radioButton3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
<RadioButton
android:id="@+id/radioButton4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
</RadioGroup>
答案 4 :(得分:0)
试试这个并告诉我它是否符合要求。
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tableLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RadioGroup
android:id="@+id/radiogroup_relation_options"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/HeadingText"
android:background="#4269c6" >
<!-- 2 columns -->
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip" >
<RadioButton
android:id="@+id/radiobutton_friend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:button="@drawable/custom_radiobutton"
android:padding="5dp"
android:paddingLeft="10dp"
android:text="Friend"
android:textSize="15sp" />
<RadioButton
android:id="@+id/radiobutton_business"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:button="@drawable/custom_radiobutton"
android:padding="5dp"
android:paddingLeft="10dp"
android:text="We've done Business Together"
android:textSize="15sp" />
</TableRow>
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip" >
<RadioButton
android:id="@+id/radiobutton_colleague"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:button="@drawable/custom_radiobutton"
android:padding="5dp"
android:paddingLeft="10dp"
android:text="Colleague"
android:textSize="15sp" />
<RadioButton
android:id="@+id/radiobutton_other"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:button="@drawable/custom_radiobutton"
android:padding="5dp"
android:paddingLeft="10dp"
android:text="Other"
android:textSize="15sp" />
</TableRow>
</RadioGroup>
</TableLayout>
我在这里使用了表格布局,因此有2行RadioButtons。