web-dev-qa-db-ja.com

Android L TimePickerDialogのスタイルを変更することは可能ですか?

Android Lエミュレーターでアプリをテストしていましたが、TimePickerDialogがこれに大幅に変更されていることに気付きました。

Android L TimePickerDialog

これは私のアプリのテーマに合わないため、Android L.で実行しているときに古いTimePickerDialogスタイルを取得できるかどうかを知りたい.

16
JDJ

テーマを指定するには、 TimePickerDialog コンストラクターをthemeパラメーターと共に使用できます。

TimePickerDialog(Context context, 
                 int theme, 
                 TimePickerDialog.OnTimeSetListener callBack, 
                 int hourOfDay, 
                 int minute, 
                 boolean is24HourView)
11
LordRaydenMK

Android:timePickerMode = "spinner"をXMLに追加します

    <TimePicker
        Android:id="@+id/timePicker1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:timePickerMode="spinner">
    </TimePicker>

https://developer.Android.com/reference/Android/R.attr.html#timePickerMode

spinnerまたはclockモードから選択できます。この属性は、spinnerモードが使用可能な唯一のオプションである前に、APIレベル21からのみ使用可能です。

34
yehyatt

AM/PMをボタンではなくピッカーにしたい場合は、ContextThemeWrapperで単一パラメーターコンストラクターを使用することをお勧めします。

new TimePicker(new ContextThemeWrapper(getActivity(), Android.R.style.Theme_Holo_Light_Dialog_NoActionBar));

AM-PM picker

テーマを複数パラメーターコンストラクターに渡すと、やや/いAM/PMボタンが表示され、時間と分の列の間にコロンがなくなります。

new TimePicker(getActivity(), null, TimePickerDialog.THEME_HOLO_LIGHT);

AM-PM button

14
Dan J

LordRaydenMKが言ったように、TimePickerDialogコンストラクターでthemeパラメーターを使用し、このテーマを提供します:Android.R.style.CustomDatePickerDialog

そしてあなたのStyles.xmlこれを定義します:

  <style name="CustomDatePickerDialog"
         parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="Android:dialogTheme">@style/MyDialogTheme</item>
    <item name="Android:timePickerStyle">@style/MyDatePicker</item>
  </style>

  <style name="MyDialogTheme"
         parent="Theme.AppCompat.Light.Dialog">
    <item name="Android:timePickerStyle">@style/MyDatePicker</item>
  </style>

  <style name="MyDatePicker"
         parent="@Android:style/Widget.Material.Light.TimePicker">
    <item name="Android:timePickerMode">spinner</item>
  </style>
1
David Riha