Android的材料设计与日期选择器AppCompat [英] Android Material Design Datepicker with AppCompat
问题描述
我想全新的Android 5.0材质设计日期选择器添加到我的使用AppCompat pre 5.0应用程序。我已经添加了
I'm trying to add the new Android 5.0 Material Design Datepicker to my pre 5.0 application using AppCompat. I've added
compile "com.android.support:appcompat-v7:21.0.0"
我的build.gradle文件,并更新了我的主题为:
to my build.gradle file and updated my Theme to:
<?xml version="1.0" encoding="utf-8"?>
<style name="AppTheme.Base" parent="@style/Theme.AppCompat.Light">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
但日期选择器依然是这样的:
而且不喜欢这样的:
but the Datepicker still looks like this:
And not like this:
谁能告诉我如何获得新的日期选择器工作在pre 5.0的设备?
Can anybody tell me how to get the new datepicker to work on pre 5.0 devices?
在此先感谢。
推荐答案
您可以尝试在 Android的betterpickers 库。它有一个 CalendarDatePickerDialog
小工具,看起来像你想要的。它提供了一盏灯,一个黑暗的主题,但对于自定义颜色你就必须将其添加为一个库项目,并更改code自己。
You could try the android-betterpickers library. It has a CalendarDatePickerDialog
widget that looks like the one you want. It provides a light and a dark theme, but for customizing colors you'd have to add it as a library project and change the code yourself.
用法是pretty的简单的,一旦你的库添加到您的项目。
Usage is pretty straightforward once you add the library to your project.
// Create date picker listener.
CalendarDatePickerDialog.OnDateSetListener dateSetListener = new CalendarDatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(CalendarDatePickerDialog dialog, int year, int monthOfYear, int dayOfMonth) {
// Set date from user input.
Calendar date = Calendar.getInstance();
date.set(Calendar.HOUR_OF_DAY, 9);
date.set(Calendar.MINUTE, 0);
date.set(Calendar.YEAR, year);
date.set(Calendar.MONTH, monthOfYear);
date.set(Calendar.DAY_OF_MONTH, dayOfMonth);
// Do as you please with the date.
}
};
// Create dismiss listener.
CalendarDatePickerDialog.OnDialogDismissListener dismissListener = new CalendarDatePickerDialog.OnDialogDismissListener() {
@Override
public void onDialogDismiss(DialogInterface dialoginterface) {
// Do something when the user dismisses the dialog.
}
};
// Show date picker dialog.
CalendarDatePickerDialog dialog = new CalendarDatePickerDialog();
dialog.setOnDateSetListener(dateSetListener);
dialog.setOnDismissListener(dismissListener);
dialog.setThemeDark(false);
dialog.show(getSupportFragmentManager(), "DATE_PICKER_TAG");
最终的结果应该是这样的(对不起质量差)。
The end result should look like this (sorry for the poor quality).
这篇关于Android的材料设计与日期选择器AppCompat的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!