我有四个单选按钮,我想要水平和垂直对齐它们。我试图在AndroidStudio中拖动它们,但它不会让我将它们拖到我想要的位置。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/test_activity_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:weightSum="1"
tools:context="com.aruffolo.quiz.TestActivity">
<TextView
android:id="@+id/test_activity_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/test_activity_msg" />
<TextView
android:id="@+id/questionText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/test_activity_text"
android:layout_centerHorizontal="true"
android:layout_marginTop="86dp"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<RadioGroup
android:layout_width="500dp"
android:layout_height="250dp"
android:layout_weight=".07"
android:gravity="center"
android:id="@+id/radioGroup"
android:layout_below="@+id/questionText">
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New RadioButton"
android:layout_gravity="left|top"
android:layout_marginLeft="5dp"/>
<RadioButton
android:id="@+id/radioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New RadioButton"
android:layout_gravity="right|top"
android:layout_marginRight="5dp" />
<RadioButton
android:id="@+id/radioButton4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New RadioButton"
android:layout_gravity="bottom|left"
android:layout_marginLeft="5dp"/>
<RadioButton
android:id="@+id/radioButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New RadioButton"
android:layout_gravity="bottom|right"
android:layout_marginRight="5dp"/>
</RadioGroup>
以下是它的样子:
顶部和底部按钮应水平对齐。
答案 0 :(得分:0)
您无法做到这一点,因为RadioGroup是LinearLayout类的子级。 我的解决方案是将radioButtons放置在RelativeLayout,ConstrainLayout或嵌套的LinearLayouts中。
将currentChecked单选按钮ID存储在字段中。
int currentCheckedRadioButton = 0;
将所有单选按钮ID存储在int Array字段中。
int[] myRadioButtons= new int[6];
并在onCreate中:
//add radioButtons to the array field.
myRadioButtons[0] = R.id.first;
myRadioButtons[1] = R.id.second;
//..
//add onClickListener for each radioButton.
for (int radioButtonID : myRadioButtons) {
findViewById(radioButtonID).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
if (currentCheckedRadioButton != 0){
((RadioButton) findViewById(currentCheckedRadioButton)).setChecked(false);
}
currentCheckedRadioButton = v.getId();
}
});
}
答案 1 :(得分:-1)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/test_activity_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:weightSum="1"
tools:context="com.aruffolo.quiz.TestActivity">
<TextView
android:id="@+id/test_activity_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="test_activity_msg" />
<TextView
android:id="@+id/questionText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/test_activity_text"
android:layout_centerHorizontal="true"
android:layout_marginTop="86dp"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<RadioGroup
android:layout_width="500dp"
android:layout_height="250dp"
android:layout_weight=".07"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal|center_vertical"
android:id="@+id/radioGroup"
android:layout_below="@+id/questionText">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New RadioButton"
android:layout_marginLeft="5dp"/>
<RadioButton
android:id="@+id/radioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New RadioButton"
android:layout_marginRight="5dp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/radioButton4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New RadioButton"
android:layout_marginLeft="5dp"/>
<RadioButton
android:id="@+id/radioButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New RadioButton"
android:layout_marginRight="5dp"/>
</LinearLayout>
</RadioGroup>
</RelativeLayout>
答案 2 :(得分:-1)
如果您想选择多个单选按钮,请更改如下代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/test_activity_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:weightSum="1"
tools:context="com.aruffolo.quiz.TestActivity">
<TextView
android:id="@+id/test_activity_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="test_activity_msg" />
<TextView
android:id="@+id/questionText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/test_activity_text"
android:layout_centerHorizontal="true"
android:layout_marginTop="86dp"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<LinearLayout
android:layout_width="500dp"
android:layout_height="250dp"
android:layout_weight=".07"
android:orientation="vertical"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal|center_vertical"
android:id="@+id/radioGroup"
android:layout_below="@+id/questionText">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New RadioButton"
android:layout_marginLeft="5dp"/>
<RadioButton
android:id="@+id/radioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New RadioButton"
android:layout_marginRight="5dp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/radioButton4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New RadioButton"
android:layout_marginLeft="5dp"/>
<RadioButton
android:id="@+id/radioButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New RadioButton"
android:layout_marginRight="5dp"/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>