Android CalendarView 随机下降数周

Posted

技术标签:

【中文标题】Android CalendarView 随机下降数周【英文标题】:Android CalendarView Drops Weeks at Random 【发布时间】:2013-07-08 03:10:16 【问题描述】:

我在我的一个项目中使用标准CalendarView。当我在对话框中显示它时,它似乎可以正常工作,但是当我在应用程序的另一个活动中显示它时,它似乎随机漏掉了几个星期。在日历中上下滚动会使它们再次出现,但其他则消失。通常缺少的一周是包含我使用setDate() 设置的日期的那一周,因此甚至没有显示选定的日期。

有没有其他人看到CalendarView 的这种行为?我正在使用 SDK v17

    <CalendarView
        android:id="@+id/cv_planner"
        android:layout_
        android:layout_
        android:layout_weight="1"
        android:padding="@dimen/item_list_padding"
        android:selectedDateVerticalBar="@color/teal"
        android:selectedWeekBackgroundColor="@color/teal"
        android:showWeekNumber="true" />

【问题讨论】:

note 暂时,如果其他人也有这个问题,请改用日期微调器。 【参考方案1】:

作为临时修复,请通过向下/向上滚动一两个月来强制刷新,然后再向后滚动。您应该会看到刷新导致出现缺失的一周。

如果这确实是一个没有解决方法的错误,那么用于弥补这一点的代码就不会是微不足道的。我想这将涉及从包含活动的 UI 线程上发布一个可运行的方法,该方法将在呈现后分析视图以检查缺少的一周,然后以某种方式强制刷新视图(这将是“最简单的”在进入对 CalendarView 本身进行子类化并尝试以更精细的粒度(例如通过 onMeasure 或 onLayout)控制其呈现之前的方法。

更新:找到了解决方法 - CalendarView Issues when Used Directly (Outside of a DatePicker)

【讨论】:

以上是关于Android CalendarView 随机下降数周的主要内容,如果未能解决你的问题,请参考以下文章

Android控件之CalendarView 日历对话框

Android零基础入门第60节:日历视图CalendarView和定时器Chronometer

Android零基础入门第60节:日历视图CalendarView和定时器Chronometer

android 2.2以上版本中的CalendarView控件怎么用

收集几个Android CalendarView非常用属性

Android控件<第十二篇>:可放弃的原生日历控件--CalendarView