我创建了一个继承自'Theme.Holo.Light.Dialog'的自定义主题。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="cust_dialog" parent="@android:style/Theme.Holo.Light.Dialog">
</style>
</resources>
我的代码:
private AlertDialog testDialog;
AlertDialog.Builder testBuilder;
LayoutInflater inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.test_dialog,
(ViewGroup) findViewById(R.id.test_root));
testBuilder = new AlertDialog.Builder(this, R.style.cust_dialog);
testBuilder.setView(layout);
testBuilder.setTitle("Support");
testDialog = testBuilder.create();
testDialog.show();
这会导致我的对话框出现在另一个对话框中。如何解决这个问题?
谢谢。
编辑:这是我的test_dialog.xml布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/test_root"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/test1"
android:layout_width="300dp"
android:layout_height="75dp"
android:text="@string/test"
android:gravity="center" />
<Button
android:id="@+id/test2"
android:layout_width="300dp"
android:layout_height="75dp"
android:text="@string/test"
android:layout_below="@id/test1"
android:gravity="center" />
</RelativeLayout>
R.layout.test_dialog
包含的不仅仅是内容?setView()
: "设置自定义视图作为对话框的内容"。如果你在那里添加了一个完整的对话框布局,你最终会得到一个对话框内部的对话框。 - zaplView layout = inflater.inflate(R.layout.test_dialog,null);
,否则你会将布局充气到自身中。 - zapl