1

プロジェクトの 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

一時的な修正として、1 ~ 2 か月上下にスクロールして強制的に更新してから、スクロールして戻ります。更新により、欠落している週が表示されることがわかります。

これが本当にバグであり、回避策がない場合、これを補うために必要なコードは簡単ではありません。含まれているアクティビティから UI スレッドに実行可能なメソッドを投稿し、レンダリング後にビューを分析して欠落している週をチェックし、何らかの方法でビューを強制的に更新する必要があると思います (これは「最も簡単」です)。 CalendarView 自体をサブクラス化し、そのレンダリングをより細かい粒度で制御しようとする前に、たとえば onMeasure や onLayout を使用して)。

更新: 回避策が見つかりました -直接使用した場合の CalendarView の問題 (DatePicker の外部)

于 2013-08-28T20:12:48.343 に答える