1

我正在尝试使用 DialogFragment 创建 TimePickerDialog,如Android 文档所示。但是,当尝试应用全息主题时,我会在执行以下操作时获得双框效果:

@Override
public Dialog onCreateDialog (Bundle savedInstanceState) 
{
    // Create a new instance of TimePickerDialog and return it
    return new TimePickerDialog(getActivity(), android.R.style.Theme_Holo_Dialog, this, hourOfDay, minute, DateFormat.is24HourFormat(getActivity()));
}

如何在没有此问题的情况下应用全息主题?

在此处输入图像描述

4

2 回答 2

3

我遇到了这个问题,我解决了。我没有使用您建议的构造函数,而是使用了 ContextThemeWrapper,如下所示:

ContextThemeWrapper wrapper = new ContextThemeWrapper(getActivity(), android.R.style.Theme_Holo_Dialog);
return new TimePickerDialog(wrapper, getActivity(), hour, minute,DateFormat.is24HourFormat(getActivity()))

这个对我有用 :)

于 2013-08-13T19:11:36.587 回答
0

有同样的问题......类TimePickerDialogAlertDialog. 您必须使用它们才能获得可预测的结果。试试这个代码:

@Override
public Dialog onCreateDialog (Bundle savedInstanceState)
{
    // Create a new instance of TimePickerDialog and return it.
    return new TimePickerDialog(getActivity(), TimePickerDialog.THEME_HOLO_DARK,
        this, hourOfDay, minute, DateFormat.is24HourFormat(getActivity()));
}

或者TimePickerDialog.THEME_DEVICE_DEFAULT_DARK,如果您更愿意遵循用户的期望,也可以使用。

您可以使用的常量是:

  • TimePickerDialog.THEME_DEVICE_DEFAULT_DARK
  • TimePickerDialog.THEME_DEVICE_DEFAULT_LIGHT
  • TimePickerDialog.THEME_HOLO_DARK
  • TimePickerDialog.THEME_HOLO_LIGHT
  • TimePickerDialog.THEME_TRADITIONAL
于 2014-12-17T08:39:35.487 回答