Nutrient Android SDK 11.1 release notes
23 February 2026
Nutrient Android SDK 11.1 improves annotation fidelity, preferring appearance stream (AP stream) rendering over platform rendering by default; increases the maximum zoom level; and modernizes the thumbnail bar with a Jetpack Compose implementation.
This release contains several fixes and enhancements. For the full list of changes, refer to our changelog.
Annotation editing performance and rendering
This release improves the performance and responsiveness of annotation editing, particularly on complex pages or pages with hundreds of annotations. We also fixed issues with proper rendering of certain annotations that have a custom AP stream.
Increased maximum zoom level
The default maximum zoom level has been increased from 15x to 40x, allowing for more detailed inspection of documents. This remains configurable, but the max setting has increased from 20x to 100x.
Redesigned thumbnail bar
The thumbnail bar has been completely rewritten using Jetpack Compose, delivering significant performance and memory improvements:
- 40 percent less memory usage — The new implementation uses substantially less memory, which is particularly beneficial when working with large documents or on memory-constrained devices.
- Improved performance — Smoother scrolling and faster thumbnail rendering thanks to Compose’s efficient recomposition.
- Unified API — The separate
PdfStaticThumbnailBarandPdfScrollableThumbnailBarclasses have been consolidated into a singlePdfThumbnailBarcomponent with a mode selector.
This is a breaking change. Refer to the migration guide below for details on updating your code.
Toolbar menu customization
This release adds the ability to modify toolbar menu options while using a custom activity through the new OnToolbarMenuChangedListener interface.
Bug fixes
This release addresses several issues:
- Annotation rendering — Annotations with incorrect or too small bounding boxes but valid appearance streams are now visible. Render fidelity for annotations with custom appearance streams has also been improved.
- Free text annotations — Two free text annotations can now be created consecutively.
- Image stamp annotations — Translucent image stamp annotations now retain their original opacity after copying or undoing.
- Note editor — UI issues when deleting a note annotation or its replies have been resolved.
- Annotation toolbar — The popup toolbar now dismisses on tap.
- Page loading — The loading spinner is no longer shown when a low-resolution render is already available, and it now correctly appears when swiping to unrendered pages.
- Search — Indexed full-text search now returns results when the search term contains special characters, such as
&,/,:, or+. - XFDF export — Export is no longer truncated when PDF annotations contain text encoded in Latin-1 (PDFDocEncoding) with characters that map to embedded null bytes.
- Content editing — An exception caused by embedded fonts with an empty or null font span has been fixed.
- Text extraction — Text extraction now works correctly for Type 3 fonts that use standard glyph names in their encoding but lack a ToUnicode CMap.
- Redaction — A rare race-conditional crash when saving redacted documents to a new file has been fixed.
Migration guide
This section covers breaking changes and how to update your code.
Thumbnail bar
PdfStaticThumbnailBar and PdfScrollableThumbnailBar have been removed. They’re replaced by PdfThumbnailBar (a ViewGroup). The display mode on PdfThumbnailBar is set programmatically via setThumbnailBarMode(ThumbnailBarMode).
Removed classes
com.pspdfkit.ui.thumbnail.PdfStaticThumbnailBarcom.pspdfkit.ui.thumbnail.PdfScrollableThumbnailBar
Migrating from PdfStaticThumbnailBar and PdfScrollableThumbnailBar
Before:
import com.pspdfkit.ui.thumbnail.PdfStaticThumbnailBarimport com.pspdfkit.ui.thumbnail.PdfScrollableThumbnailBar
val thumbnailBarStatic = PdfStaticThumbnailBar(context)thumbnailBarStatic.setDocument(document, configuration)
val thumbnailBarScrollable = PdfScrollableThumbnailBar(context)thumbnailBarScrollable.setDocument(document, configuration)After:
import com.pspdfkit.configuration.activity.ThumbnailBarModeimport com.pspdfkit.ui.PdfThumbnailBar
val thumbnailBar = PdfThumbnailBar(context)
// ThumbnailBarMode.THUMBNAIL_BAR_MODE_FLOATING for a floating (overlay) thumbnail bar// ThumbnailBarMode.THUMBNAIL_BAR_MODE_PINNED for a pinned thumbnail bar// ThumbnailBarMode.THUMBNAIL_BAR_MODE_SCROLLABLE for a scrollable thumbnail bar
thumbnailBar.setThumbnailBarMode(ThumbnailBarMode.THUMBNAIL_BAR_MODE_SCROLLABLE)thumbnailBar.setDocument(document, configuration)For a full example, see the thumbnail bar example in the miscellaneous examples section of the Catalog app.