AlertDialog 内で設定された View 内に 2 つの RadioButtons があります。最初のボタンのテキストは横に表示されますが、2 番目のボタンのテキストは縦に表示されます。最初は、これは 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 を試してみます。