android - 如何在Android中更改 "MaterialDatePicker"的主题?

标签 android material-design android-datepicker material-components-android material-components

我用过 Material 日期选择器 为了选择一个日期,我也完成了这项任务,但是 我无法更改主题的标题 & 按钮。

        MaterialDatePicker.Builder builder;
        MaterialDatePicker materialDatePicker;

        long today = MaterialDatePicker.todayInUtcMilliseconds();
        CalendarConstraints.Builder con = new CalendarConstraints.Builder();
        con.setValidator(DateValidatorPointForward.now());
        builder.setSelection(today);
        builder.setCalendarConstraints(con.build());

        materialDatePicker = builder.build();

        findViewById(R.id.startCalender).setOnClickListener(v ->
                materialDatePicker.show(getSupportFragmentManager(), builder.toString())
        );

        materialDatePicker.addOnPositiveButtonClickListener(selection -> 
        Toast.makeText(this, materialDatePicker.getHeaderText(), 
        Toast.LENGTH_SHORT).show());

Screenshot attached

最佳答案

你有不同的选择。
您可以使用:

builder.setTheme(R.style.MaterialCalendarTheme);

和:
  <style name="MaterialCalendarTheme" parent="ThemeOverlay.MaterialComponents.MaterialCalendar">
    <!-- just override the colors used in the default style -->
    <item name="colorOnPrimary">@color/primaryDarkColor</item>
    <item name="colorPrimary">@color/primaryLightColor</item>
  </style>

或者你可以使用类似的东西:
  <style name="MaterialCalendarTheme" parent="ThemeOverlay.MaterialComponents.MaterialCalendar">

    <!-- Header panel -->
    <item name="materialCalendarHeaderLayout">@style/MaterialCalendar.HeaderLayout1</item>
    <!-- Buttons -->
    <item name="buttonBarPositiveButtonStyle">@style/TextButton.Dialog1</item>
    <item name="buttonBarNegativeButtonStyle">@style/TextButton.Dialog1</item>
  </style>
  <style name="MaterialCalendar.HeaderLayout1" parent="Widget.MaterialComponents.MaterialCalendar.HeaderLayout">
    <!--<item name="android:background">?attr/colorPrimary</item>-->
    <item name="android:background">@color/primaryLightColor</item>
  </style>
  <style name="TextButton.Dialog1" parent="Widget.MaterialComponents.Button.TextButton.Dialog">
    <item name="android:textColor">@color/white</item>
    <item name="backgroundTint">@color/primaryDarkColor</item>
  </style>

enter image description here

关于android - 如何在Android中更改 "MaterialDatePicker"的主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62086854/

相关文章:

java - 休息模板错误 403

安卓 : Deleting an item from listview as well as database

java - LIBGDX - 着色器中不需要的纹理混合

angularjs - 布局结构 - 带有 angularjs md 的卡片布局和工具栏

android - 没有阴影的 Material 设计按钮

android - 如何将 DatePickerDialog 值设置为 EditText?

android - 如何在android中更改日期选择器对话框的默认年份(1900)?

android - 微调器上的监听器

android - AppCompat Snackbar 不以平板电脑为中心

java - 在日出/日落 Web 服务的 url 中使用 DatePicker 中的日期