Sus*_*ger 1 java android android-theme
我有一个日期选择器对话框,其主题是
<style name="DatePickerTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="colorAccent">@color/that_blue_color</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我创建此自定义主题是因为我想更改datePickerDialog的背景颜色。我设法改变了背景的颜色,选择器圆圈和按钮的文字颜色。但是我现在想更改CANCEL按钮的文本颜色,并OK保持按钮的文本颜色不变。我该怎么做?
She*_*ana 20
您可以为CANCEL按钮制作不同的样式,如下所示。
<style name="DatePickerTheme" parent="Theme.MaterialComponents.Light.Dialog.Alert">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:buttonBarNegativeButtonStyle">@style/DatePickerTheme.ButtonBarNegativeButtonStyle</item>
</style>
<style name="DatePickerTheme.ButtonBarNegativeButtonStyle" parent="Widget.MaterialComponents.Button.TextButton.Dialog">
<item name="android:textColor">@android:color/holo_red_light</item>
</style>
Run Code Online (Sandbox Code Playgroud)
dialog.setOnShowListener(dialog -> {
int positiveColor = ContextCompat.getColor(view.getContext(), R.color.default_blue_color);
int negativeColor = ContextCompat.getColor(view.getContext(), R.color.font_hint);
dialog.getButton(DatePickerDialog.BUTTON_POSITIVE).setTextColor(positiveColor);
dialog.getButton(DatePickerDialog.BUTTON_NEGATIVE).setTextColor(negativeColor);
});
dialog.show();
Run Code Online (Sandbox Code Playgroud)
我在对话框的showListener.
您可以使用Button从Dialog并修改它的属性getButton()。请参见下面的示例。调用.show()其他明智的方式后得到按钮,它会给出一个null。
final Calendar c = Calendar.getInstance();
int mYear = c.get(Calendar.YEAR);
int mMonth = c.get(Calendar.MONTH);
int mDay = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePickerDialog = new DatePickerDialog(ConstarintsActivity.this,
(view, year, monthOfYear, dayOfMonth) -> {
}, mYear, mMonth, mDay);
datePickerDialog.show();
datePickerDialog.getButton(DatePickerDialog.BUTTON_NEGATIVE).setTextColor(Color.GREEN);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3995 次 |
| 最近记录: |