1

Android docs が示すように、DialogFragment を使用して TimePickerDialog を作成しようとしています。ただし、ホロ テーマを適用しようとすると、次の操作を行うと二重フレーム効果が発生します。

@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

同じ問題がありました...クラスはTimePickerDialog、から独自のテーマ定数を継承しAlertDialogます。予測可能な結果を​​得るには、それらを使用する必要があります。このコードを試してください:

@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 に答える