Download Latest Version v3.3.1 source code.zip (2.8 MB) Google Add to Preferred Sources
Home / v3.3.0
Name Modified Size InfoDownloads / Week
Parent folder
android-sample-debug.apk 2026-08-16 20.6 MB
README.md 2026-08-16 6.2 kB
v3.3.0 source code.tar.gz 2026-08-16 2.4 MB
v3.3.0 source code.zip 2026-08-16 2.7 MB
Totals: 4 Items   25.7 MB 0

[!WARNING] Android is now Compose-first. Moving forward, like the official view-based Jetpack libraries, Vico’s views module will receive only critical fixes. Its versioning is being decoupled, and the following applies only to compose. The views guide, API reference, and sample charts remain available.

If your project will stay view-based for the foreseeable future and you need the latest Vico features, you can use the compose module with ComposeView.

Overview

  • breaking changes: none
  • addressed: #351, #394, #594, #1003, #1313, [#1369], #1475, #1478, #1485
  • external contributors: @adrcotfas, @hjf-codecrazy, @lewan42, @nagatsuka-shuuya, @rubixhacker

Changes

  • Added content-area chart sizing. CartesianChartHost and PieChartHost gain a chartAreaHeight parameter, which sets the default height of the coordinate system (for Cartesian charts) or the default pie diameter (for pie charts). The legend, the marker, the axis margins, and other components now add to this height rather than being fitted inside a capped total height. The defaults are 192 dp for Cartesian charts and 232 dp for pie charts. Modifier.height and similar still constrain the component bounds.
  • Deprecated MeasuringContext.canvasSize in favor of MeasuringContext.canvasWidth. With chartAreaHeight, the canvas height isn’t necessarily known during measuring. When drawing, read the full size from DrawingContext.canvasSize, narrowing your receiver from MeasuringContext to DrawingContext where needed. See the deprecation messages for more.
  • Deprecated BaseAxis.Size.Fraction. Its main use case—keeping the chart area’s height constant as the x-axis height changes—is now served by chartAreaHeight. Relatedly, HorizontalAxis’s automatic-height cap is now a fixed 64 dp instead of a fraction of the canvas height.
  • Introduced per-type CartesianLayerDrawingModelInterpolator factories: line, column, and candlestick. The old default factory and the CartesianLayerDrawingModel.transform and Entry.transform hooks are deprecated; layer-specific interpolators now own interpolation policy. If you customized interpolation, consult the deprecation messages.
  • Added a reveal animation for LineCartesianLayer. Passing CartesianLayerDrawingModelInterpolator.line(sweep = true) for drawingModelInterpolator animates a line’s first appearance as a clip sweeping in from the start.
  • Added separate initial-animation settings. CartesianChartHost gains an initialAnimationSpec parameter, which defaults to animationSpec and can be set to null to skip the initial reveal animation. The animateIn parameter is deprecated; set initialAnimationSpec to null instead.
  • Added configurable axis title positions. HorizontalAxis and VerticalAxis gain a titlePosition property, and BaseAxis.TitlePosition defines the available values (Side and End). Their factory and copy functions also gain a titlePosition parameter.
  • Added the option to anchor extreme HorizontalAxis labels to the plot-area edges without shrinking the plot area, preventing clipping. HorizontalAxis.ItemPlacer.aligned gains a shiftExtremeLabels parameter, and HorizontalAxis.ItemPlacer gains getShiftExtremeLabels.
  • Added snap scrolling. rememberVicoScrollState and VicoScrollState gain xSnapStep and snapAnimationSpec; when xSnapStep is set, the scroll position snaps to multiples of the given x-step after a fling.
  • Added VicoZoomState.animateZoom for animating zoom programmatically.
  • Added visible-x-range preservation across data updates. When a chart’s x-range shifts (its minX or xStep changes), VicoScrollState recomputes the scroll value so the same x-coordinates stay on screen, keeping prepended history from jumping the viewport to the start edge. The correction runs during measurement, so the adjusted value is used by the frame that draws the new data, and it works in both LTR and RTL layouts.
  • Fixed a VicoScrollState scroll-position bug in which a zoom’s stale scroll compensation was applied when a pinch transitioned straight into a pan or fling, rolling the viewport back to its zoom-time position.
  • Prevented an UpdateReceiver leak when a chart’s identity changes. Registration, transformation, and unregistration with CartesianChartModelProducer now use the effect-stable chart ID rather than a value that mutates on recomposition.
  • Fixed PieChart slice spacing, which now yields a constant-width gap for both donuts and holeless pies instead of widening toward the outer edge or collapsing at the center.
  • Fixed the clipping of outside pie labels. PieChart now reserves vertical space for SliceLabel.Outside labels instead of shrinking the pie to fit them inside the chart bounds.
  • Deprecated pieSeries in favor of pieModel, aligning the pie API with the candlestick, column, and line transaction functions.
  • Improved ShapeComponent drawing performance. Resolved Outlines are now drawn directly instead of being replayed into a reusable Path, so rectangles and rounded rectangles skip path construction entirely.
  • Relocated CartesianLayerDrawingModel and CartesianLayerDrawingModelInterpolator from com.patrykandpatrick.vico.compose.common.data to com.patrykandpatrick.vico.compose.cartesian.data. Deprecated type aliases remain at the old locations.
Source: README.md, updated 2026-08-16