我正在创建一个我想应用自定义主题的 DatePickerDialog。它仅应用自定义主题的一部分。我要求没有标题和一个灰色的窗口背景,结果整个对话框(数字和月份除外)是橙色的。我究竟做错了什么?这是我的自定义主题:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="GPSTheme" parent="android:style/Theme.Dialog">
<item name="android:textColor">#000000</item>
<item name="android:windowTitleStyle">@style/Theme.Sherlock.Light</item>
<item name="android:background">@drawable/orange_gradient</item>
<item name="android:windowBackground">@drawable/cool_gradient</item>
<item name="android:windowNoTitle">true</item>
</style>
</resources>
这是我调用对话框的地方(从片段中):
btnStartDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
if (DatesValid(true, year, monthOfYear, dayOfMonth)) {
StartDate.set(Calendar.YEAR, year);
StartDate.set(Calendar.MONTH, monthOfYear);
StartDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
SetTextDates();
} else {
Toast.makeText(
getActivity(),
"Start Date cannot be greater than End Date",
Toast.LENGTH_SHORT).show();
}
GetDistanceTraveledForTime();
}
};
DatePickerDialog d = new DatePickerDialog(getActivity(),
R.style.GPSTheme, mDateSetListener,
StartDate.get(Calendar.YEAR), StartDate
.get(Calendar.MONTH), StartDate
.get(Calendar.DAY_OF_MONTH));
//DatePicker dp = d.getDatePicker();
//LinearLayout l = (LinearLayout)dp.getChildAt(0);
//l.setBackgroundColor(R.drawable.orange_gradient);
d.setIcon(R.drawable.calendar_2_icon);
d.show();
}
});
我在这里查看:https : //android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/themes.xml,了解 Theme.Dialog 的所有继承属性。
这是一个屏幕截图: