| Name | Modified | Size | Downloads / 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
viewsmodule will receive only critical fixes. Its versioning is being decoupled, and the following applies only tocompose. Theviewsguide, 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
composemodule withComposeView.
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.
CartesianChartHostandPieChartHostgain achartAreaHeightparameter, 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.heightand similar still constrain the component bounds. - Deprecated
MeasuringContext.canvasSizein favor ofMeasuringContext.canvasWidth. WithchartAreaHeight, the canvas height isn’t necessarily known during measuring. When drawing, read the full size fromDrawingContext.canvasSize, narrowing your receiver fromMeasuringContexttoDrawingContextwhere 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 bychartAreaHeight. Relatedly,HorizontalAxis’s automatic-height cap is now a fixed 64 dp instead of a fraction of the canvas height. - Introduced per-type
CartesianLayerDrawingModelInterpolatorfactories:line,column, andcandlestick. The olddefaultfactory and theCartesianLayerDrawingModel.transformandEntry.transformhooks are deprecated; layer-specific interpolators now own interpolation policy. If you customized interpolation, consult the deprecation messages. - Added a reveal animation for
LineCartesianLayer. PassingCartesianLayerDrawingModelInterpolator.line(sweep = true)fordrawingModelInterpolatoranimates a line’s first appearance as a clip sweeping in from the start. - Added separate initial-animation settings.
CartesianChartHostgains aninitialAnimationSpecparameter, which defaults toanimationSpecand can be set tonullto skip the initial reveal animation. TheanimateInparameter is deprecated; setinitialAnimationSpectonullinstead. - Added configurable axis title positions.
HorizontalAxisandVerticalAxisgain atitlePositionproperty, andBaseAxis.TitlePositiondefines the available values (SideandEnd). Their factory and copy functions also gain atitlePositionparameter. - Added the option to anchor extreme
HorizontalAxislabels to the plot-area edges without shrinking the plot area, preventing clipping.HorizontalAxis.ItemPlacer.alignedgains ashiftExtremeLabelsparameter, andHorizontalAxis.ItemPlacergainsgetShiftExtremeLabels. - Added snap scrolling.
rememberVicoScrollStateandVicoScrollStategainxSnapStepandsnapAnimationSpec; whenxSnapStepis set, the scroll position snaps to multiples of the given x-step after a fling. - Added
VicoZoomState.animateZoomfor animating zoom programmatically. - Added visible-x-range preservation across data updates. When a chart’s x-range shifts (its
minXorxStepchanges),VicoScrollStaterecomputes 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
VicoScrollStatescroll-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
UpdateReceiverleak when a chart’s identity changes. Registration, transformation, and unregistration withCartesianChartModelProducernow use the effect-stable chart ID rather than a value that mutates on recomposition. - Fixed
PieChartslice 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.
PieChartnow reserves vertical space forSliceLabel.Outsidelabels instead of shrinking the pie to fit them inside the chart bounds. - Deprecated
pieSeriesin favor ofpieModel, aligning the pie API with thecandlestick,column, andlinetransaction functions. - Improved
ShapeComponentdrawing performance. ResolvedOutlines are now drawn directly instead of being replayed into a reusablePath, so rectangles and rounded rectangles skip path construction entirely. - Relocated
CartesianLayerDrawingModelandCartesianLayerDrawingModelInterpolatorfromcom.patrykandpatrick.vico.compose.common.datatocom.patrykandpatrick.vico.compose.cartesian.data. Deprecated type aliases remain at the old locations.