カスタム テーマを適用する DatePickerDialog を作成しています。カスタムテーマの一部のみを適用しています。私はタイトルを要求せず、windowBackground は灰色で、結果のダイアログ全体 (数字と月を除く) はオレンジ色です。私は何を間違っていますか?これが私のカスタムテーマです:
<?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 。
スクリーンショットは次のとおりです。