- Navigate to the desired offset programmatically
- Get the current scroll offset position
Contact Support
Scrolling in Flutter PDF Viewer (SfPdfViewer)
13 Mar 20253 minutes to read
The Syncfusion® Flutter PDF Viewer widget has scrolling capabilities that allow users to navigate through content seamlessly. This section will walk you through various aspects of scrolling, including programmatically setting scroll positions.
WARNING
Please note that since the PDF Viewer has built-in scrolling capability, it is advised to avoid placing the PDF Viewer inside other controls that also offer scrolling, such as ScrollView. Nesting within such controls may cause unexpected issues.
Navigate to the desired offset programmatically
The jumpTo controller method moves the scroll position of the SfPdfViewer
to the specified horizontal and vertical offset. If the specified offset value is wrong, then the scroll will not happen, and the older position will be retained.
NOTE
Both the
xOffset
andyOffset
are optional parameters and if the offset values are not provided, then theSfPdfViewer
will be scrolled or moved to the default position (0, 0).
late PdfViewerController _pdfViewerController;
@override
void initState() {
_pdfViewerController = PdfViewerController();
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter PDF Viewer'),
actions: <Widget>[
IconButton(
icon: Icon(
Icons.arrow_drop_down_circle,
color: Colors.white,
),
onPressed: () {
_pdfViewerController.jumpTo(yOffset:1500);
},
),
],
),
body: SfPdfViewer.network(
'https://cdn.syncfusion.com/content/PDFViewer/flutter-succinctly.pdf',
controller: _pdfViewerController,
),
);
}
Get the current scroll offset position
The SfPdfViewer
allows you to get the current scroll offset position using the scrollOffset property. The following code example explains the same.
final PdfViewerController _pdfViewerController=PdfViewerController();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter PDF Viewer'),
actions: <Widget>[
IconButton(
icon: Icon(
Icons.arrow_drop_down_circle,
color: Colors.white,
),
onPressed: () {
_pdfViewerController.jumpToPage(3);
print( _pdfViewerController.scrollOffset.dy);
print( _pdfViewerController.scrollOffset.dx);
},
),
],
),
body: SfPdfViewer.network(
'https://cdn.syncfusion.com/content/PDFViewer/flutter-succinctly.pdf',
controller: _pdfViewerController,
),
);
}