簡體   English   中英

如何在 Jetpack Compose 中自定義日歷視圖?

[英]how to customize calendar view in jetpack compose?

我正在使用底部工作表中的日歷視圖來顯示日歷視圖。 現在我想更改導航左右箭頭圖標並減少日歷中兩個圖標之間的空間。 我還想要“今日”文本label當今天的日期選擇下面的日期時。

目前我得到這樣的觀點:

這是我想要獲得的視圖:

        Row(modifier = Modifier
            .padding(6.dp),
            verticalAlignment = Alignment.Top) {

            AndroidView(
                { CalendarView(it) },
                modifier = Modifier.wrapContentWidth(),
                update = { views ->
                    views.date = scheduleViewModel.selectedCalender.value.timeInMillis
                    views.setOnDateChangeListener { calendarView, year, month, dayOfMonth ->
                        val cal = Calendar.getInstance()
                        cal.set(year, month, dayOfMonth)
                        scheduleViewModel.onEvent(ScheduleEvent.DateSelected(cal))
                        onDateSelect()

                    }
                }
            )

            Text(
                text = "Today",
                modifier = Modifier
                    .wrapContentWidth(),
                fontFamily = appFontFamily,
                fontWeight = FontWeight.SemiBold,
                fontSize = 10.sp,
                color = Color(0xFF0A70C4),
                textAlign = TextAlign.Center,
            )

        }

當您使用 XML 視圖時,您需要尋找非 Compose 解決方案,例如查看此問題下的答案如何為CalendarView定義自定義 XML 主題。

要將主題應用於AndroidView ,您可以使用ContextThemeWrapper

AndroidView(
    { CalendarView(ContextThemeWrapper(it, R.style.your_custom_style)) },
    // ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM