从 DatePickerDialog 中删除标题

Remove Title from DatePickerDialog

出于某种原因,我的 DatePickerDialog 中有两个标题。

如何去掉顶部的白色标题? 这是我用来创建对话框的代码:

datePickerDialog = new DatePickerDialog(ProfileActivity.this, this, year, month, day);
datePickerDialog.getDatePicker().updateDate(year, month - 1, day);
datePickerDialog.show();
datePickerDialog.setTitle("");

我自己发现: datePickerDialog.getDatePicker().setMaxDate(c.getTimeInMillis());

可能对你来说: datePickerDialog.getDatePicker().updateDate(year, month - 1, day);

是罪魁祸首。如果你离开那行,你将没有标题。

我正在考虑设置一个特定的主题来解决这个问题。

-- 更新--

确保在调用 .getDatePicker().x() 之后调用 .setTitle("");。不然不行。

AlertDialogsetCustomHeader 方法,使用它并设置具有 zero 宽度和 zero 高度的自定义视图。它会起作用

LinearLayout linearLayout = new LinearLayout(getApplicationContext());
timePickerDialog.setCustomTitle(linearLayout);

更合适,甚至支持全息版本

    datePickerDialog.setCustomTitle(null);
datePickerDialog = new DatePickerDialog(ProfileActivity.this, this, year, month, day);
datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis());
datePickerDialog.setTitle("");
datePickerDialog.show();

你应该添加 datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis()); 然后添加 datePickerDialog.setTitle ("");

这种类型的序列去除顶部白色背景header

使用它也可以隐藏标题背景

datePickerDialog.setTitle(null);

将其应用到您的样式中

 <style name="MaterialCalendarTheme" parent="ThemeOverlay.MaterialComponents.MaterialCalendar">
    <item name="materialCalendarHeaderTitle">@style/HeaderTitle_Hide</item>
</style>

<style name="HeaderTitle_Hide" parent="@style/Widget.MaterialComponents.MaterialCalendar.HeaderTitle">
    <item name="android:visibility">gone</item>
</style>