Saltar al contenido principal

Desaprobados cacheExtent y cacheExtentStyle

Las propiedades cacheExtent y cacheExtentStyle están depreciadas. Son reemplazadas por scrollCacheExtent con un objeto ScrollCacheExtent.

Resumen

#

Flutter 3.44 depreca cacheExtent y cacheExtentStyle en widgets relacionados con el desplazamiento (scrolling), como ListView, GridView, CustomScrollView y Viewport, y sus correspondientes render objects, como RenderViewport. La nueva propiedad scrollCacheExtent encapsula tanto el valor como la estrategia de caché (píxeles o viewport).

Contexto

#

Anteriormente, cacheExtent era un double y cacheExtentStyle determinaba cómo se interpretaba ese double (ya sea como píxeles o como una fracción del viewport). Esta división hacía que la configuración fuera más difícil de entender.

La nueva propiedad scrollCacheExtent usa un objeto ScrollCacheExtent que encapsula explícitamente tanto el valor como la estrategia de caché (píxeles o viewport), lo que proporciona seguridad de tipos y una intención más clara.

Guía de migración

#

Capa de widgets

#

cacheExtent (píxeles)

#

Si tu código usa cacheExtent, que por defecto es píxeles, usa scrollCacheExtent con ScrollCacheExtent.pixels.

Before:

dart
ListView(
  cacheExtent: 500.0,
  children: // ...
)

After:

dart
ListView(
  scrollCacheExtent: const ScrollCacheExtent.pixels(500.0),
  children: // ...
)

cacheExtentStyle (viewport)

#

Si tu código usa cacheExtent con CacheExtentStyle.viewport, lo cual es común en Viewport, usa scrollCacheExtent con ScrollCacheExtent.viewport.

Before:

dart
Viewport(
  cacheExtent: 0.5,
  cacheExtentStyle: CacheExtentStyle.viewport,
  slivers: // ...
)

After:

dart
Viewport(
  scrollCacheExtent: const ScrollCacheExtent.viewport(0.5),
  slivers: // ...
)

Capa de render objects

#

Si tu código establece propiedades manualmente en RenderViewport o un render object similar, usa scrollCacheExtent.

Before:

dart
renderViewport.cacheExtent = 500.0;
renderViewport.cacheExtentStyle = CacheExtentStyle.pixel;

After:

dart
renderViewport.scrollCacheExtent = const ScrollCacheExtent.pixels(500.0);

Timeline

#

Introducido en la versión: 3.41.0-0.0.pre
En el lanzamiento estable: 3.44

Referencias

#

Documentación de la API:

PRs relevantes: