2017-09-13 5 views
0

誰も私のDatePickerDialogの背景に一致するように日付セレクターを囲む黒いボックスをスタイルする方法を知っていますか?ここでは参考のため Broken DatePickerDialogスタイルDatePickerDialogセレクターの背景

は私がAlertDialogsのために使用しているスタイルです:

<style name="AlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <item name="android:windowBackground">@android:color/white</item> 
    <item name="android:colorBackground">@android:color/white</item> 
    <item name="colorAccent">@color/group_blue_800</item> 
    <item name="android:textColorPrimary">@color/secondary_text</item> 
    <item name="android:textColor">@color/primary_text</item> 
    <item name="android:lineSpacingMultiplier">1.2</item> 
    <item name="colorControlNormal">@android:color/white</item> 
    <item name="colorPrimary">@android:color/white</item> 
    <item name="colorPrimaryDark">@android:color/white</item> 
</style> 
+0

前もってロリポップ前のデザインを使用したい、またはその素材を欲しいですか?私はあなたがここに見つけることができる 'DatePickerDialog'と' TimePickerDialog'の公式、フレームワーク(8.0、Oreo)バージョンをバックポートしました:[https://github.com/Gericop/DateTimePicker](https://github.com/Gericop)/DateTimePicker)、ピッカーにAPI 14+デバイスのマテリアルデザインを適用させます。 –

+0

私はすでにAPIレベル21+のデバイス用に新しい材料設計バージョンを使用していますが、何らかの理由で私の既存のスタイルがプリロリポップ設計のこの動作になりました。私はそれを解決するために、新しいスタイルを作成して、ちょうどあなたが以下で見つけられるプレロリポップデバイスによって使用されるようにしました。助けてくれてありがとう! – Coopra

+0

だから私はあなたのアプリ全体にマテリアルデザインを使用する場合、フレームワークバージョンをバックポートされたものに「アップグレードする」ことを考慮して、21 +のみではなくすべてのAPIレベルでマテリアルデザインを使用し、しかし選択はあなたのものです。私はこのバックポートを作った。なぜなら古いホロスタイルのダイアログはそうでなければ完全にマテリアル化された私のアプリケーションとはかなり醜いものだったからだ。 –

答えて

0

私は前ロリポップデバイス用DatePickers/TimePickersのためのスタンドアロンのスタイルを作成することで、これを解決:

<style name="PreLollipopDatePickerStyle" parent="Theme.AppCompat.Light.Dialog"> 
     <item name="android:lineSpacingMultiplier">1.2</item> 
     <item name="android:windowContentOverlay">@null</item> 
     <item name="android:windowIsFloating">true</item> 
     <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
     <item name="android:windowBackground">@android:color/white</item> 
     <item name="android:colorBackground">@android:color/white</item> 
     <item name="android:textColorPrimary">@color/secondary_text</item> 
     <item name="android:textColorSecondary">@color/secondary_text</item> 
     <item name="android:textColor">@color/primary_color</item> 
     <item name="colorAccent">@color/group_blue_800</item> 
    </style> 

次に、Lollipopデバイス以前のテーマリソースIDを渡すコンストラクタを使用してDatePicker/TimePickerを作成します。

DatePickerDialog datePickerDialog; 
if (AndroidUtils.isLollipop()) { 
    datePickerDialog = new DatePickerDialog(
     getActivity(), 
     new EndDateTimeSelectedListener(), 
     endDateTimeExclusive.get(Calendar.YEAR), 
     endDateTimeExclusive.get(Calendar.MONTH), 
     endDateTimeExclusive.get(Calendar.DAY_OF_MONTH)); 
} else { 
    datePickerDialog = new DatePickerDialog(
     getActivity(), 
     R.style.PreLollipopDatePickerStyle, 
     new EndDateTimeSelectedListener(), 
     endDateTimeExclusive.get(Calendar.YEAR), 
     endDateTimeExclusive.get(Calendar.MONTH), 
     endDateTimeExclusive.get(Calendar.DAY_OF_MONTH)); 
} 

datePickerDialog.show(); 
関連する問題