2017-12-16 127 views
2

AndroidでDatePickerDialogのDark Theme Styleを設定しようとしています。 Vikram's answer hereによると、私はDatePickerDilog'sコンストラクタにスタイルを設定したくありません。DatePickerDialogの背景色をデフォルトの白から変更するには?

次のスタイルを設定します。&設定されていますが、OKには適用されません。&ポートモードでボタンのパネルをキャンセルします。しかし、それは風景に働く!!:

マイV21 /のstyles.xml:

<style name="AppTheme.Dark.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
    <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
    <item name="android:statusBarColor">@color/primaryColorDark_dark</item> 
    <item name="android:datePickerDialogTheme">@style/DatePicker_Theme_Dark</item> 
</style> 
<!--Dark DatePicker Theme & style--> 
<style name="DatePicker_Theme_Dark" parent="android:Theme.Material.Light.Dialog"> 
    <item name="android:datePickerStyle">@style/DatePicker_Dark</item> 
</style> 
<style name="DatePicker_Dark" parent="@android:style/Widget.Material.Light.DatePicker"> 
    <item name="colorAccent">@color/colorAccent_dark</item> 
    <item name="android:background">@color/primaryColor_dark</item> 
    <item name="android:headerBackground">@color/colorAccent_dark</item> 
    <item name="android:textColorPrimary">@color/textPrimaryColor_dark</item> 
    <item name="android:textColorSecondary">@color/textSecondaryColor_dark</item> 
</style> 

私のstyles.xml:私の.javaファイルで

<!-- Dark Application theme --> 
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
    <item name="windowActionModeOverlay">false</item> 
</style> 
<style name="AppTheme.Dark" parent="AppTheme.Base"> 
    <item name="android:windowBackground">@color/backgroundColor_dark</item> 
    <item name="colorAccent">@color/colorAccent_dark</item> 
    <item name="android:textColorSecondary">@color/textSecondaryColor_dark</item> 
    <item name="android:textColorPrimary">@color/textPrimaryColor_dark</item> 
    <item name="android:datePickerStyle">@style/DatePicker_Dark</item> 
</style> 

<style name="DatePicker_Dark" parent="Theme.AppCompat.Light.Dialog"> 
    <item name="colorAccent">@color/colorAccent_dark</item> 
    <item name="android:background">@color/primaryColor_dark</item> 
    <item name="android:headerBackground">@color/colorAccent_dark</item> 
    <item name="android:textColorPrimary">@color/textPrimaryColor_dark</item> 
    <item name="android:textColorSecondary">@color/textSecondaryColor_dark</item> 
</style> 

、私は新しいを取得していますDatePickerDialogのインスタンスを次のよう

return new DatePickerDialog(getActivity(), this, year, month, day){ 
    @Override 
    public void onDateChanged(@NonNull DatePicker view, int year, int month, int dayOfMonth) { 
      onDateSet(view, year, month, dayOfMonth); 
      dismiss(); 
    } 
}; 

スナップ: DatePicker

あなたのヘルプは高く評価されます。ありがとう!

+0

あなたのJavaファイルを共有してください。 –

答えて

1

DatePicker色は親テーマの選択です。

<!-- Theme.AppCompat.Light is not a dialog theme --> 
<style name="DialogTheme" parent="**Theme.AppCompat.Light**"> 
    <item name="colorAccent">@color/your_color</item> 
</style> 

およびDatePickerDialog()上記のテーマを使用してください。

new DatePickerDialog(MainActivity.this, R.style.DialogTheme, new DatePickerDialog.OnDateSetListener() { 
    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
     //DO SOMETHING 
    } 
}, 2015, 02, 26).show(); 

ハッピーコーディング!

+0

ありがとうございますが、私はDatePickerDialogのコンストラクタでスタイルを渡したくありません。しかし、私はすべての私のスタイルを簡潔にするために私の質問を編集しました。 – MilanG

関連する問題