与RadioButton一起添加EditText
我有一个自定义的DialogPreference
子类,我希望有一个RadioGroup
和三个单选按钮。 前两个是带标题的香草RadioButton
组件,但是第三个我想直接在它的右侧放置一个EditText
,这样我可以在选择该按钮时输入自定义值。
我曾尝试将第三个按钮与EditText
一起放入水平LinearLayout
,但随后第三个按钮不再参与父RadioGroup
。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RadioGroup
android:id="@+id/lactate_radio"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/lactate_default_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lactate_default_value"/>
<RadioButton
android:id="@+id/lactate_calibrated_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lactate_calibrated_value" />
<LinearLayout android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/lactate_custom_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lactate_custom_value"/>
<EditText
android:id="@+id/lactate_custom_value_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</RadioGroup>
</LinearLayout>
我也尝试以编程方式添加此LinearLayout
但仍具有相同的行为。 有没有办法做到这一点,也许通过明确地告诉父RadioGroup
关于第三个按钮或通过某种方式适当地定位EditText
而不使用水平LinearLayout
? 否则,我想我必须编写一个应该成为真正派对的RadioButton
子类!
您应该能够将您的父级布局更改为RelativeLayout
。 然后给你的RadioGroup
android:orientation="vertical"
然后将您的EditText
放置在RadioGroup
的底部并与其对齐。 我没有尝试过,但像这样的东西应该工作。
更新
我有时间去测试它。 这似乎给你正在寻找的输出
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RadioGroup
android:id="@+id/lactate_radio"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/lactate_default_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="lactate_default_value"/>
<RadioButton
android:id="@+id/lactate_calibrated_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="lactate_calibrated_value" />
<RadioButton
android:id="@+id/lactate_custom_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="lactate_custom_value"/>
</RadioGroup>
<EditText
android:id="@+id/lactate_custom_value_edit_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/lactate_radio"
android:layout_toRightOf="@+id/lactate_radio"
android:text="Test Text" />
</RelativeLayout>
请注意,我还将一些width
s更改为wrap_content
以便它们适合在一起。 将RadioGroup
的orientation
更改为垂直无需使用LinearLayout
<LinearLayout
android:layout_height= "wrap_content"
android:layout_width= "wrap_content"
android:orientation= "horizontal"
>
<LinearLayout
android:layout_height= "wrap_content"
android:layout_width= "wrap_content"
android:orientation= "vertical"
>
<RadioGroup
<!-- radio buttons code here -->
/>
</LinearLayout>
<LinearLayout
android:layout_height= "wrap_content"
android:layout_width= "wrap_content"
>
<EditText
<!-- edit text code here -->
android:layout_alignBottom="@+id/id_ofRadioButton"
android:layout_toRightOf="@+id/id_ofRadioButton"
/>
</LinearLayout>
如果你想在每个单选按钮旁边编辑文本:
<LinearLayout
android:layout_height= "wrap_content"
android:layout_width= "wrap_content"
android:orientation= "vertical"
>
<LinearLayout
android:layout_height= "wrap_content"
android:layout_width= "wrap_content"
android:orientation= "horizontal"
>
<RadioGroup
<!-- single radio button code here -->
/>
<EditText
<!-- edit text code here -->
/>
</LinearLayout>
<LinearLayout
android:layout_height= "wrap_content"
android:layout_width= "wrap_content"
android:orientation= "vertical"
>
<LinearLayout
android:layout_height= "wrap_content"
android:layout_width= "wrap_content"
android:orientation= "horizontal"
>
<RadioGroup
<!-- single radio button code here -->
/>
<EditText
<!-- edit text code here -->
/>
</LinearLayout>
链接地址: http://www.djcxy.com/p/14735.html