私は、ダイアログのレイアウトをプログラムで変更したいと思います。ルートLinearLayoutの向きを変更します。このルートLinearLayoutには、GTとDIという2つのレイアウトが含まれています。 AlertDialogを使用すると効果的ですが、Dialogを直接使用する場合(タイトルやタイトルスペースを必要としないためカスタムスタイルのダイアログを使用しています)は役に立ちません。ここで Android:ダイナミックダイアログのレイアウト変更
は私のXMLレイアウトです:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/GT_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="GT"
android:textAppearance="?android:attr/textAppearanceMedium" />
<RadioGroup
android:id="@+id/GT_group"
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:checked="true"
android:height="5dp"
android:text="GT #1" />
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:height="5dp"
android:text="GT #2" />
</RadioGroup>
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/DI_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FF0000"
android:orientation="vertical" >
<TextView
android:id="@+id/textView3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="DI"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbarAlwaysDrawVerticalTrack="true" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RadioGroup
android:id="@+id/DI_group"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RadioButton
android:id="@+id/DI_rdb_1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:checked="true"
android:text="DI #1" />
<RadioButton
android:id="@+id/DI_rdb_2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:checked="true"
android:text="DI #2" />
</RadioGroup>
</LinearLayout>
</ScrollView>
</LinearLayout>
そして、ここに私のコードです:私はXMLの重複を避けるために、 "レイアウトの土地" を使用したくない
LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rootLayout = inflater.inflate(R.layout.new_game, (ViewGroup) activity.findViewById(R.id.root_container));
if (screenIsLandscape) {
((LinearLayout) rootLayout).setOrientation(LinearLayout.HORIZONTAL);
} else {
((LinearLayout) rootLayout).setOrientation(LinearLayout.VERTICAL);
}
Dialog dlg = new Dialog(activity, R.style.FullHeightDialog);
dlg.requestWindowFeature(Window.FEATURE_NO_TITLE);
dlg.setContentView(R.layout.my_layout);
dlg.show();
(私のXMLむしろ大きくなっていますが、ここでは単純化しています)。 ありがとうございます。
あなたは2を切り替えるために)(setContentViewを変更しようとしましたか? –
ありがとうございます。申し訳ありませんが、私は理解していません:何と何を切り替えるのですか? setContentView()では、私は現在、私の唯一のXMLリソースレイアウトファイルの名前である 'R.layout.my_layout'を使用しています。あなたはGTとDIの間の切り替えを意味する場合、それは私が探しているものではありません:私は水平から垂直に、またはその逆にレイアウトしたいと思います – xav