9

我对 DatePickerDialog 显示有疑问。

我想用这样的“HoloDialog”主题创建日期选择器对话框:

DatePickerDialog dpd = new DatePickerDialog(this, android.R.style.Theme_Holo_Dialog, reservationDate, 2014, 1, 1);

然后我会看到这个结果: 带有 Holo_Dealog 的 DatePickerDialog

如您所见,对话框显示为“两个边框”。

我想创建与此处显示的相同的对话框,但周围有一个边框。是否可以?

4

1 回答 1

21

假设我正确理解了您的问题,我想我找到了一种方法。在这里,我们匿名子类化DatePickerDialog以覆盖onCreate()并为窗口设置透明背景。

DatePickerDialog dpd = new DatePickerDialog(this, android.R.style.Theme_Holo_Dialog,
                                            reservationDate, 2014, 1, 1) {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    }
};

您也可以使用自定义主题来代替。例如:

<style name="HoloDialog" parent="@android:style/Theme.Holo.Dialog">
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

DatePickerDialog然后在's 的构造函数中传递它:

DatePickerDialog dpd = new DatePickerDialog(this, R.style.HoloDialog,
                                            reservationDate, 2014, 1, 1);
于 2014-08-08T14:49:07.987 回答