Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MaterialCalendarView装饰器覆盖所选日期颜色问题_Java_Android_Calendarview - Fatal编程技术网

Java MaterialCalendarView装饰器覆盖所选日期颜色问题

Java MaterialCalendarView装饰器覆盖所选日期颜色问题,java,android,calendarview,Java,Android,Calendarview,我在图书馆有问题。 一切都很好,直到我选择了一天的装饰,因为装饰有相同的颜色的选择颜色 以下是正常的单击: 问题是: 装饰器代码: public class EventDecoratorMonth implements DayViewDecorator { private CalendarDay date; private Context context; public EventDecoratorMonth(CalendarDay date, Context co

我在图书馆有问题。 一切都很好,直到我选择了一天的装饰,因为装饰有相同的颜色的选择颜色

以下是正常的单击:

问题是:

装饰器代码:

public class EventDecoratorMonth implements DayViewDecorator {
    private CalendarDay date;
    private Context context;

    public EventDecoratorMonth(CalendarDay date, Context context) {
        this.date = date;
        this.context = context;
    }

    @Override
    public boolean shouldDecorate(CalendarDay day) {
        return day.equals(date);
    }

    @Override
    public void decorate(DayViewFacade view) {
        if (context != null)
            view.addSpan(new ForegroundColorSpan(ContextCompat.getColor(context, R.color.orange)));
    }
}
并通过xml选择颜色:
app:mcv_selectionColor=“@color/orange”

所选的日期文本颜色为白色,我使用带有选择器的
mcv\u dateTextAppearance
android:state\u checked=“true”
时将其更改为白色,在其他情况下为灰色。 问题是,如果选择了一个具有装饰器的日期,则不会应用
mcv\u dateTextAppearance

编辑: 我的选择器

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/white" android:state_checked="true" />
    <item android:color="@color/white" android:state_pressed="true" />
    <item android:color="@color/textGrey" android:state_enabled="false" />
    <item android:color="@color/textGrey" android:state_checked="false" />
    <item android:color="@color/textGrey" />
</selector>

如何解决这个问题

编辑2:


我修复了使用装饰器将ForegroundColorSpan颜色设置为白色的问题,并在changeSelected日期删除旧的装饰器并设置新的装饰器

尝试将此选择器用于文本颜色

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:color="@color/white" android:state_checked="true" />

    <item android:color="@color/white" android:state_pressed="true" />

    <item android:color="@color/grey" android:state_enabled="false" />

    <item android:color="@color/grey" />

</selector>

尝试将此选择器用于文本颜色

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:color="@color/white" android:state_checked="true" />

    <item android:color="@color/white" android:state_pressed="true" />

    <item android:color="@color/grey" android:state_enabled="false" />

    <item android:color="@color/grey" />

</selector>


它不工作,我的选择器与您的相同。装饰器仍然覆盖选择器。它不起作用,我的选择器等于你的选择器。装饰器仍然覆盖选择器