Releases: usuiat/Zoomable
v2.9.0
In this version, ZoomState is now recreated when the parameters of rememberZoomState change.
This makes it easier to use Zoomable in combination with Coil's rememberAsyncImagePainter.
See https://github.com/usuiat/Zoomable?tab=readme-ov-file#asynchronous-image-loading
What's Changed
- chore(deps): update kotlin monorepo to v2.2.21 by @renovate[bot] in #403
- chore(deps): update dependency org.jetbrains.compose to v1.9.3 by @renovate[bot] in #399
- Fix crash when ZoomState is initialized with unspecified contentSize by @usuiat in #406
- Update remembered ZoomState when maxScale, contentSize, and initialScale are changed by @usuiat in #407
Full Changelog: v2.8.2...v2.9.0
v2.8.2
v2.8.1
v2.8.0
Mouse wheel zoom is now available on iOS. This is made possible by Compose multiplatform 1.8.0.
What's Changed
- Update kotlin monorepo to v2.1.21 by @renovate in #353
- Update dependency org.jetbrains.compose to v1.8.1 by @renovate in #355
Full Changelog: v2.7.0...v2.8.0
Known Issue
Scrolling may not work smoothly with zoomableWithScroll. #351
v2.7.0
v2.6.0
Zoom with Scroll Component
A new experimental API zoomableWithScroll has been added.
It allows you to zoom in on components that scroll, such as LazyColumn.
LazyColumn(
modifier = Modifier.zoomableWithScroll(rememberZoomState())
) {
items(100) { Text("Item $it") }
}It can also be used with Modifier.verticalScroll or Modifier.horizontalScroll.
In that case, put zoomableWithScroll before verticalScroll or horizontalScroll in the Modifier chain.
Column(
modifier = Modifier
.fillMaxSize()
.zoomableWithScroll(rememberZoomState())
.horizontalScroll(rememberScrollState())
) {
repeat(100) { Text("Item $it") }
}What's Changed
Full Changelog: v2.5.0...v2.6.0
v2.5.0
API Change
onTap, onDoubleTap, and onLongPress arguments of zoomable() and snapBackZoomable() accept null.
Improve tap response
When onDoubleTap is null and enableOneFingerZoom is false, onTap will be called immediately. No longer wait the double tap detection timeout.
Improve event propagation
If Zoomable does not need to handle taps, the event is now passed to the parent composable.
Modifier.clickable can now be used in the parent composable if the following conditions are met.
onTap,onDoubleTap, andonLongPressare nullenableOneFingerZoomis false
What's Changed
- Improve tap response when double tap and one finger zoom are disabled by @usuiat in #332
- If Zoomable does not need to handle taps, allow the parent composable to handle them. by @usuiat in #334
- Update kotlin monorepo to v2.1.20 by @renovate in #328
- [Android] Bump compile sdk and target sdk to 36 by @usuiat in #327
Full Changelog: v2.4.0...v2.5.0
v2.5.0-beta02
Improve event propagation
If Zoomable does not need to handle taps, the event is now passed to the parent composable.
Modifier.clickable can now be used in the parent composable if the following conditions are met.
onTap,onDoubleTap, andonLongPressare nullenableOneFingerZoomis false
What's Changed
- If Zoomable does not need to handle taps, allow the parent composable to handle them. by @usuiat in #334
- Update kotlin monorepo to v2.1.20 by @renovate in #328
Full Changelog: v2.5.0-beta01...v2.5.0-beta02
v2.5.0-beta01
API Change
onTap, onDoubleTap, and onLongPress arguments of zoomable() and snapBackZoomable() accept null.
Improve tap response
When onDoubleTap is null and enableOneFingerZoom is false, onTap will be called immediately. No longer wait the double tap detection timeout.
What's Changed
- Improve tap response when double tap and one finger zoom are disabled by @usuiat in #332
- [Android] Bump compile sdk and target sdk to 36 by @usuiat in #327
Full Changelog: v2.4.0...v2.5.0-beta01