1

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

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

    <CalendarView
        android:id="@+id/cv_planner"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:padding="@dimen/item_list_padding"
        android:selectedDateVerticalBar="@color/teal"
        android:selectedWeekBackgroundColor="@color/teal"
        android:showWeekNumber="true" />
4

1 回答 1

0

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

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

更新:找到一种解决方法 -直接使用时的 CalendarView 问题(在 DatePicker 之外)

于 2013-08-28T20:12:48.343 回答