gpt4 book ai didi

java - MaterialCalendarView 装饰器覆盖选定日期的颜色问题

转载 作者:行者123 更新时间:2023-12-02 04:01:22 25 4
gpt4 key购买 nike

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

这是正常的点击:

click on normal day

以及问题:

issue with decorator click

装饰器代码:

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_dateTextAppearance 和选择器在 android:state_checked="true" 时将其更改为白色,在其他情况下将其更改为灰色。问题是,当选择带有装饰器的一天时,不会应用 mcv_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 颜色设置为白色的问题,并在更改选定日期时删除旧的并设置新的

最佳答案

尝试使用此选择器来设置文本颜色

<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>

关于java - MaterialCalendarView 装饰器覆盖选定日期的颜色问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56733006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com