我在一个ViewDialog中设置了两个RadioButtons。虽然第一个文本的文本显示为水平,但第二个按钮的文本显示为垂直。最初,我认为这是由于View没有填充对话框本身的宽度,但这似乎不是问题(我尝试使文本更小,我得到相同的结果)。我相信我过去曾遇到过这种情况,但我不记得我是如何解决它的。我在AlertDialog的应用程序中的其他地方使用RadioButtons没有问题,所以我很难过。这就是它的样子。在任何时候我都不会硬编码dp中任何布局或项目的宽度;我只使用match_parent或wrap_content:
因此,非常感谢您尝试解决此问题的任何帮助!
我的布局(在其上调用LayoutInflator,然后应用值/侦听器):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/template"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="0dp"
android:orientation="horizontal">
<CheckBox
android:id="@+id/check_box"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.45"
android:textSize="16sp"
android:textColor="@color/Black" />
<RadioGroup
android:id="@+id/radio_group"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.55"
android:orientation="horizontal"
android:enabled="False">
<RadioButton
android:id="@+id/radio_button_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:textDirection="ltr"
android:enabled="False"
android:textColor="@color/Black"/>
<RadioButton
android:id="@+id/radio_button_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:enabled="False"
android:textColor="@color/Black"
android:checked="true"/>
</RadioGroup>
</LinearLayout>
像这样充气布局工作正常,并提供所需的输出:
LinearLayout inflatedLayout = (LinearLayout) this.getLayoutInflater().inflate(R.layout.template, null);
currDialog = CreateDialog.getDialog(this, "Title", inflatedLayout );
currDialog.show();
但是,当我将它添加到TableRow对象时,然后将其添加到TableLayout对象中,它会产生意外结果。我将首先尝试使用RelativeLayout。
答案 0 :(得分:0)
您正在使用布局权重,并且您正在强制您的RadioGroup仅占用空间的55%。由于空间不够,文字会垂直。要100%确定您的无线电组合适合,您需要将其宽度设置为wrap_content
。
<RadioGroup
android:id="@+id/radio_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:enabled="False">
您可能还需要考虑将方向更改为vertical
,在这种情况下,它可能只适用于55%的空间,但我仍强烈推荐wrap_content
答案 1 :(得分:0)
android:id="@+id/radio_button_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
没有足够的可用空间让第二个单选按钮适合其文本,因此它会拉伸高度以适应文本。