Closed shimiso closed 6 years ago
可以 你可以按照这个想法完成 提一个PR
它让我在紧张的3日演示Demo最终以假数据填充而告终,我想,这个问题只能做成异步的合理,如果做成在进入软件就预先加载,很多功能就无法完成了。
如果是异步加载的标记 需要在setMarkData之后 calendarViewAdapter.notifyDataChanged
这是我异步加载完成后的代码:
public void showTimeSucc(List
但是走完这一步,日历一片空白
改好了
ok,异步执行的方法: @Override public void showMonthCalendar() { markData = new HashMap<>(); // 指定有Date的日期 markData.put("2017-12-7", Constant.CALENDAR); markData.put("2017-12-8", Constant.CALENDAR); markData.put("2017-12-9", Constant.CALENDAR); markData.put("2017-12-10", Constant.CALENDAR); markData.put("2017-12-14", Constant.CALENDAR); calendarAdapter.setMarkData(markData); calendarAdapter.notifyDataChanged(currentDate); }
@MagicMashRoom 厉害啊,我也赶紧更新
事实上我看源码了,感觉无从下手,代码层次有些高
日历视图是在每次滑动切换月份的时候就开始重绘了,如果标记calendarAdapter.setMarkData(markData);是异步的,会计较麻烦,会导致标记还没有加载完整个日历就绘制完了, 为了解决这个问题,在刚进入时候就先加载3个月缓存起来,目前暂时没想到更好的办法,想做成每次滑动异步更新标记