This HTML page is not optimized for LLM or AI agent consumption. Fetch the Markdown version instead: /guides/flutter/user-interface/view-configuration.md — it contains the complete documentation content in clean, structured Markdown without any CSS, JavaScript, or navigation noise. NutrientViewConfiguration reference for Flutter | Nutrient SDK

NutrientViewConfiguration(opens in a new tab) configures Nutrient Flutter viewer widgets. NutrientInstantView(opens in a new tab) currently uses it, and it’ll replace PdfConfiguration(opens in a new tab) as the standard configuration object.

NutrientView still uses PdfConfiguration(opens in a new tab) for configuration. NutrientView doesn’t support NutrientViewConfiguration(opens in a new tab) yet. Refer to the configuring PDF view properties guide for the current NutrientView configuration reference.

Use NutrientViewConfiguration(opens in a new tab) to control the viewer’s layout, user interface (UI) chrome, editing features, and appearance. All fields are optional. When you don’t set a field, the native SDK uses its built-in default. Set only the values you need to change.

The configuration groups fields by platform:

The following example configures layout, thumbnails, editing, and platform-specific options:

NutrientInstantView(
serverUrl: serverUrl,
jwt: jwt,
configuration: const NutrientViewConfiguration(
pageLayoutMode: PageLayoutMode.single,
thumbnailBarMode: ThumbnailBarMode.floating,
enableAnnotationEditing: true,
enableFormEditing: true,
androidConfig: AndroidViewConfiguration(
showSearchAction: true,
showOutlineAction: true,
),
iosConfig: IOSViewConfiguration(
spreadFitting: SpreadFitting.adaptive,
),
),
)

Cross-platform fields

The following fields apply to Android, iOS, and Web unless otherwise noted.

Layout

Use these fields to configure page flow, page layout, transitions, and the initial page.

FieldTypeDescription
scrollDirection(opens in a new tab)ScrollDirection?Sets the axis pages scroll on: horizontal (default) or vertical.
pageLayoutMode(opens in a new tab)PageLayoutMode?Sets how many pages appear side by side: single, double, or automatic.
pageTransition(opens in a new tab)PageTransition?Sets the animation used when moving between pages. Refer to PageTransition values.
firstPageAlwaysSingle(opens in a new tab)bool?Shows the first page alone when set to true, even in double-page mode. Use this for documents with a full-width cover.
startPage(opens in a new tab)int?Sets the zero-based page index to open. Android and Web apply this field; iOS ignores it.

PageTransition values

Use these values with pageTransition(opens in a new tab).

ValuePlatforms
scrollContinuousAndroid, iOS, Web.
scrollPerSpreadAndroid, iOS, Web.
curliOS only.
slideHorizontal, slideVertical, cover, fadeAndroid, iOS.
scrollContinuousPerPage, autoAndroid, iOS.
disabledAndroid, iOS, Web.

UI chrome

Use these fields to configure toolbar visibility, thumbnails, and the viewer theme.

FieldTypeDescription
userInterfaceViewMode(opens in a new tab)UserInterfaceViewMode?Sets when the toolbar and overlays appear: automatic (shown on tap), always, automaticNoFirstLastPage, or never (kiosk/immersive mode).
thumbnailBarMode(opens in a new tab)ThumbnailBarMode?Sets where the page thumbnail strip appears: none, defaultStyle, pinned, scrubberBar, scrollable, or floating.
appearanceMode(opens in a new tab)AppearanceMode?Sets the color theme: defaultMode, sepia, night, or allCustomColors.

Editing

Use these fields to configure text selection, annotations, form editing, and saving behavior.

FieldTypeDescription
enableTextSelection(opens in a new tab)bool?Enables users to select and copy text.
enableAnnotationEditing(opens in a new tab)bool?Enables users to create, move, and delete annotations. When set to false, annotations are read-only.
enableFormEditing(opens in a new tab)bool?Enables users to fill PDF form fields. When set to false, fields render but users can’t interact with them.
disableAutosave(opens in a new tab)bool?Disables automatic saving when set to true. The app triggers saves manually with NutrientViewHandle(opens in a new tab).

Instant and AI Assistant

These fields apply to Android and iOS, and they only take effect on NutrientInstantView(opens in a new tab). They have no effect on Web or non-Instant documents.

FieldTypeDescription
enableInstantComments(opens in a new tab)bool?Enables Instant Comments. Defaults to false. When set to true, iOS exposes comment creation in long-press and text-selection menus, and Android exposes it as the comment marker tool in the annotation toolbar. This requires the Instant Comments component in your Document Engine license. Refer to the Instant Comments guide.
aiAssistantConfiguration(opens in a new tab)Map<String, String>?Configures AI Assistant. Expected keys are serverUrl, jwt, and sessionId; userId is optional. This connects the SDK’s built-in AI Assistant chat UI to your AI service. Refer to the AI Assistant guide.

Zoom

These fields apply to iOS and Web. Android doesn’t expose zoom constraints through its configuration builder. Use minimumZoomScale(opens in a new tab) and maximumZoomScale(opens in a new tab) to set zoom limits.

FieldTypeDescription
minimumZoomScale(opens in a new tab)double?Sets the minimum zoom factor.
maximumZoomScale(opens in a new tab)double?Sets the maximum zoom factor.

AndroidViewConfiguration

AndroidViewConfiguration(opens in a new tab) contains options that only apply to Android. Pass it as NutrientViewConfiguration.androidConfig(opens in a new tab). iOS and Web ignore it.

The following example configures Android toolbar items, search, document editing, and theme resources:

androidConfig: AndroidViewConfiguration(
showSearchAction: true,
showOutlineAction: true,
showBookmarksAction: false,
inlineSearch: true,
enableDocumentEditor: false,
darkThemeResource: 'MyApp_Dark',
defaultThemeResource: 'MyApp_Light',
)
FieldTypeDescription
appearanceMode(opens in a new tab)AppearanceMode?Overrides the top-level appearanceMode(opens in a new tab) on Android.
thumbnailBarMode(opens in a new tab)ThumbnailBarMode?Overrides the top-level thumbnailBarMode(opens in a new tab) on Android.
grayScale(opens in a new tab)bool?Renders the document in grayscale.
showPageLabels(opens in a new tab)bool?Uses named page labels, such as “i” or “Cover,” instead of numeric indices.
documentLabelEnabled(opens in a new tab)bool?Shows the document title as an overlay at the top of the screen.
inlineSearch(opens in a new tab)bool?Shows search as a compact inline bar instead of a full modal dialog.
showActionNavigationButtons(opens in a new tab)bool?Shows back and forward buttons for navigating previously visited pages.
showSearchAction(opens in a new tab)bool?Shows the search button in the toolbar.
showOutlineAction(opens in a new tab)bool?Shows the outline (table of contents) button in the toolbar.
showBookmarksAction(opens in a new tab)bool?Shows the bookmarks button in the toolbar.
showAnnotationListAction(opens in a new tab)bool?Shows a button that opens the annotation list.
showThumbnailGridAction(opens in a new tab)bool?Shows a button that opens the fullscreen thumbnail grid.
showPrintAction(opens in a new tab)bool?Shows a print button in the toolbar overflow menu.
enableDocumentEditor(opens in a new tab)bool?Enables page editing, including insertion, deletion, and reordering. This requires a Document Editor license.
contentEditorEnabled(opens in a new tab)bool?Enables in-place text and image editing. This requires a Content Editor license.
darkThemeResource(opens in a new tab)String?Sets the Android XML theme resource to apply in dark mode.
defaultThemeResource(opens in a new tab)String?Sets the Android XML theme resource to apply in light mode.

IOSViewConfiguration

IOSViewConfiguration(opens in a new tab) contains options that only apply to iOS. Pass it as NutrientViewConfiguration.iosConfig(opens in a new tab). Android and Web ignore it.

The following example configures spread fitting and navigation bar buttons on iOS:

iosConfig: IOSViewConfiguration(
spreadFitting: SpreadFitting.adaptive,
leftBarButtonItems: ['closeButtonItem'],
rightBarButtonItems: ['annotationButtonItem', 'searchButtonItem'],
)
FieldTypeDescription
spreadFitting(opens in a new tab)SpreadFitting?Sets how a page spread fits into the viewport: fit (letterbox), fill (crop to fill), or adaptive (SDK chooses per spread).
thumbnailBarMode(opens in a new tab)ThumbnailBarMode?Overrides the top-level thumbnailBarMode(opens in a new tab) on iOS.
showPageLabels(opens in a new tab)bool?Uses named page labels instead of numeric indices.
documentLabelEnabled(opens in a new tab)bool?Shows the document title overlay.
inlineSearch(opens in a new tab)bool?Shows search as a compact inline bar instead of a modal sheet.
showActionNavigationButtons(opens in a new tab)bool?Shows back and forward page navigation buttons.
allowToolbarTitleChange(opens in a new tab)bool?Updates the navigation bar title to the current page label while scrolling.
bookmarkIndicatorMode(opens in a new tab)IOSBookmarkIndicatorMode?Sets when to show the bookmark icon on pages: off, alwaysOn, or onWhenBookmarked.
bookmarkIndicatorInteractionEnabled(opens in a new tab)bool?Enables users to tap the bookmark indicator to toggle bookmarks. This only applies when bookmarkIndicatorMode(opens in a new tab) isn’t off.
leftBarButtonItems(opens in a new tab)List<String>?Replaces the default left navigation bar buttons. Pass an empty list to remove all buttons.
rightBarButtonItems(opens in a new tab)List<String>?Replaces the default right navigation bar buttons. Pass an empty list to remove all buttons.

Bar button item identifiers

Use these identifiers with leftBarButtonItems(opens in a new tab) and rightBarButtonItems(opens in a new tab).

IdentifierDescription
closeButtonItem(opens in a new tab)Closes or dismisses the viewer.
annotationButtonItem(opens in a new tab)Opens the annotation toolbar.
searchButtonItem(opens in a new tab)Opens search.
outlineButtonItem(opens in a new tab)Opens the outline/table of contents panel.
bookmarkButtonItem(opens in a new tab)Opens the bookmarks panel.
thumbnailsButtonItem(opens in a new tab)Opens the thumbnail grid.
printButtonItem(opens in a new tab)Opens the print dialog.
activityButtonItem(opens in a new tab)Opens the system share sheet.
brightnessButtonItem(opens in a new tab)Opens brightness controls.

WebViewConfiguration

WebViewConfiguration(opens in a new tab) contains options that only apply to Web. The platform interface declares it as Object? to avoid a circular package dependency. Import it from package:nutrient_flutter and pass it as webConfig(opens in a new tab). Common options include showToolbar(opens in a new tab), showAnnotations(opens in a new tab), readOnly(opens in a new tab), and theme(opens in a new tab).

The following example configures toolbar visibility, annotation visibility, read-only mode, and the viewer theme on Web:

import 'package:nutrient_flutter/nutrient_flutter.dart';
NutrientViewConfiguration(
webConfig: WebViewConfiguration(
showToolbar: true,
showAnnotations: true,
readOnly: false,
theme: 'DARK',
),
)

Common WebViewConfiguration fields

Use these common fields to configure Web viewer behavior.

FieldTypeDescription
showToolbar(opens in a new tab)bool?Shows or hides the main toolbar.
showAnnotations(opens in a new tab)bool?Shows or hides all annotations in the viewer.
readOnly(opens in a new tab)bool?Opens the viewer in read-only mode, without annotation creation or editing.
theme(opens in a new tab)String?Sets the viewer theme string, such as DARK, LIGHT, or AUTO.
enableAnnotationToolbar(opens in a new tab)bool?Shows or hides the annotation toolbar.
sidebarMode(opens in a new tab)SidebarMode?Sets which sidebar panel opens initially, such as annotations, bookmarks, or thumbnails.
interactionMode(opens in a new tab)NutrientWebInteractionMode?Sets the initial active tool or interaction mode on load.
zoom(opens in a new tab)dynamic (num or ZoomMode)Sets the initial zoom level.
allowPrinting(opens in a new tab)bool?Enables or blocks printing from the web viewer UI.
disableTextSelection(opens in a new tab)bool?Disables text selection in the viewer.
disableForms(opens in a new tab)bool?Disables form field interaction.
locale(opens in a new tab)String?Sets the UI locale as a BCP 47 language tag, such as en or de.
toolbarItems(opens in a new tab)List<NutrientWebToolbarItem>?Customizes the main toolbar items.
autoSaveMode(opens in a new tab)AutoSaveMode?Controls auto-save behavior for web changes.

For advanced web-only options — including callbacks, rendering hooks, performance toggles, and other low-level NutrientViewer.load() options — refer to the complete WebViewConfiguration API reference(opens in a new tab).