Java MaterialDatePicker不在Android上工作

Java MaterialDatePicker不在Android上工作,java,android,material-design,androidx,material-components-android,Java,Android,Material Design,Androidx,Material Components Android,我想将我的项目的日期选择器更改为Android材质组件提供的日期选择器,但它不起作用 这是我尝试过的代码: MaterialDatePicker.Builder<Long> builder = MaterialDatePicker.Builder.datePicker(); MaterialDatePicker<Long> picker = builder.build(); picker.show(getSupportFragmentManager(), picker

我想将我的项目的日期选择器更改为Android材质组件提供的日期选择器,但它不起作用

这是我尝试过的代码:

MaterialDatePicker.Builder<Long> builder = MaterialDatePicker.Builder.datePicker();

MaterialDatePicker<Long> picker = builder.build();

picker.show(getSupportFragmentManager(), picker.toString());
MaterialDatePicker.Builder=MaterialDatePicker.Builder.datePicker();
MaterialDatePicker-picker=builder.build();
show(getSupportFragmentManager(),picker.toString());
这就是它的样子:

这就是它应该是什么样子:

谁能告诉我少了什么


感谢您获得所需的输出,请确保在调用
show()
之前添加此输出:

特别是对于Material DatePicker,您需要首先实现最新的库

implementation 'com.google.android.material:material:1.1.0-alpha09'
然后


为了获得所需的输出,请确保在调用
show()
之前添加以下内容:

特别是对于Material DatePicker,您需要首先实现最新的库

implementation 'com.google.android.material:material:1.1.0-alpha09'
然后

添加最新的依赖项:

implementation 'com.google.android.material:material:1.1.0-alpha10'

MaterialDatePicker.Builder<Long> builder = MaterialDatePicker.Builder.datePicker();
       builder.setTitleTextResId(R.string.your_text);// here is the title for your datepicker
       MaterialDatePicker<Long> picker = builder.build();
       picker.show(getSupportFragmentManager(), picker.toString());
实现'com.google.android.material:material:1.1.0-alpha10'
MaterialDatePicker.Builder=MaterialDatePicker.Builder.datePicker();
builder.setTitleTextResId(R.string.your_text);//这是你的日期选择器的标题
MaterialDatePicker-picker=builder.build();
show(getSupportFragmentManager(),picker.toString());
其他选择: 添加最新的依赖项:

implementation 'com.google.android.material:material:1.1.0-alpha10'

MaterialDatePicker.Builder<Long> builder = MaterialDatePicker.Builder.datePicker();
       builder.setTitleTextResId(R.string.your_text);// here is the title for your datepicker
       MaterialDatePicker<Long> picker = builder.build();
       picker.show(getSupportFragmentManager(), picker.toString());
实现'com.google.android.material:material:1.1.0-alpha10'
MaterialDatePicker.Builder=MaterialDatePicker.Builder.datePicker();
builder.setTitleTextResId(R.string.your_text);//这是你的日期选择器的标题
MaterialDatePicker-picker=builder.build();
show(getSupportFragmentManager(),picker.toString());
其他选择:

使用,您可以使用新的

要正常工作,您必须在应用程序中使用。
通过这种方式,您可以继承选择器的样式和主题

要选择单个日期,只需使用:

MaterialDatePicker.Builder<Long> builder = MaterialDatePicker.Builder.datePicker();
builder.setTitleText(R.string.your_text);
MaterialDatePicker<Long> picker = builder.build();
picker.show(getSupportFragmentManager(), picker.toString());
有了这个,你可以使用新的

要正常工作,您必须在应用程序中使用。
通过这种方式,您可以继承选择器的样式和主题

要选择单个日期,只需使用:

MaterialDatePicker.Builder<Long> builder = MaterialDatePicker.Builder.datePicker();
builder.setTitleText(R.string.your_text);
MaterialDatePicker<Long> picker = builder.build();
picker.show(getSupportFragmentManager(), picker.toString());

问题出在初级阶段

我的colorPrimary项目的默认颜色为“白色”,材质日期选择器样式使用该colorPrimary为按钮的背景和文本着色。因为标题文本的颜色也是白色的,所以当有所有内容时,似乎什么都没有

我通过将样式文件导入到我的项目并对项目中的样式进行一些调整来解决这个问题


谢谢大家的回答,他们都帮助我们找到了问题

问题出在初级阶段

我的colorPrimary项目的默认颜色为“白色”,材质日期选择器样式使用该colorPrimary为按钮的背景和文本着色。因为标题文本的颜色也是白色的,所以当有所有内容时,似乎什么都没有

我通过将样式文件导入到我的项目并对项目中的样式进行一些调整来解决这个问题


谢谢大家的回答,他们都帮助我们找到了问题

我也有同样的问题,我的原色是白色

简单的解决方案是覆盖日历样式中的
primaryColor

基本主题:


@style/Theme.YV.Bible.DatePicker
@style/Theme.YV.Bible.DatePicker
日历/日期选择器主题


?colorPrimaryDark//这是关键,我们需要使用深色而不是主题的原色
用法

val picker=MaterialDatePicker.Builder
.datePicker()
.setCalendarConstraints(CalendarConstraints.Builder().setStart(now().time).build())
.setSelection(c.timeInMillis)
.setTheme(com.bible.base.R.style.Theme\u YV\u bible\u DatePicker)
.build()
picker.show(碎片管理器,null)

我的原色是白色也有同样的问题

简单的解决方案是覆盖日历样式中的
primaryColor

基本主题:


@style/Theme.YV.Bible.DatePicker
@style/Theme.YV.Bible.DatePicker
日历/日期选择器主题


?colorPrimaryDark//这是关键,我们需要使用深色而不是主题的原色
用法

val picker=MaterialDatePicker.Builder
.datePicker()
.setCalendarConstraints(CalendarConstraints.Builder().setStart(now().time).build())
.setSelection(c.timeInMillis)
.setTheme(com.bible.base.R.style.Theme\u YV\u bible\u DatePicker)
.build()
picker.show(碎片管理器,null)

您好,您的预期结果图像丢失,请修复它,我们将尽力帮助您。您好,您的预期结果图像丢失,请修复它,我们将尽全力帮助您。我已经实现了最后一个库,但它仍然不起作用。DatePickerDialog不支持范围。我已经实现了最后一个库,但它仍然不起作用。DatePickerDialog不支持范围。您可以在Google的Maven上查看它存储库。com.google.android.material>material>1.1.0-alpha10您可以在谷歌的Maven存储库中查看它。com.google.android.material>material>1.1.0-alpha10如何设置此主题?我的是显示空白的积极/消极的按钮和标题,口音等,你必须在你的应用程序中使用一个如文件中所述。答案中的样式是所有材质主题中的默认样式。如何在XML布局文件中声明选择器而不是以编程方式声明选择器?如何为此设置主题?我的正/负按钮和ti显示为空白
MaterialDatePicker.Builder<Pair<Long, Long>> builder =
                    MaterialDatePicker.Builder.dateRangePicker();
CalendarConstraints.Builder constraintsBuilder = new CalendarConstraints.Builder();
builder.setCalendarConstraints(constraintsBuilder.build());
MaterialDatePicker<?> picker = builder.build();
picker.show(getSupportFragmentManager(), picker.toString());
<!-- Picker styles and themes. -->
<item name="materialCalendarStyle">@style/Widget.MaterialComponents.MaterialCalendar</item>
<item name="materialCalendarFullscreenTheme">@style/ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen</item>
<item name="materialCalendarTheme">@style/ThemeOverlay.MaterialComponents.MaterialCalendar</item>
HeaderLaoyout     -> background:colorPrimary, textColor:colorOnPrimary
HeaderSelection   -> background:colorPrimary, textColor:colorOnPrimary
ConfirmButtons    -> background:colorPrimary, textColor:colorOnPrimary
Buttons           -> background:colorPrimary, textColor:colorOnSurface
HeaderToggleButton->                          textColor:colorOnPrimary
Day               ->                          text:colorOnSurface  stroke:colorOnSurface
SelectedDay       -> background:colorPrimary, textColor:colorOnPrimary
RangeFillColor    -> background:colorPrimary