diff --git a/packages/native_pdf_renderer/test/native_pdf_renderer_test.dart b/packages/native_pdf_renderer/test/native_pdf_renderer_test.dart index b9932548..e6fe8e5a 100644 --- a/packages/native_pdf_renderer/test/native_pdf_renderer_test.dart +++ b/packages/native_pdf_renderer/test/native_pdf_renderer_test.dart @@ -98,7 +98,12 @@ void main() { test('open', () async { // page number 0 - not available - expect(document.getPage(0), throwsA(isInstanceOf())); + expect( + document.getPage(0), + throwsA( + isInstanceOf(), + ), + ); page = await document.getPage(3); expect(log, [ @@ -117,7 +122,12 @@ void main() { expect(page.document, document); // page number 4 more than the document - expect(document.getPage(4), throwsA(isInstanceOf())); + expect( + document.getPage(4), + throwsA( + isInstanceOf(), + ), + ); }); test('render', () async { diff --git a/packages/native_pdf_view/CHANGELOG.md b/packages/native_pdf_view/CHANGELOG.md index a5a4598d..9c343ac9 100644 --- a/packages/native_pdf_view/CHANGELOG.md +++ b/packages/native_pdf_view/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.1.0 + +* Added `onPageChanged` callback + ## 2.0.0 * Removed default padding diff --git a/packages/native_pdf_view/lib/src/native_pdf_view.dart b/packages/native_pdf_view/lib/src/native_pdf_view.dart index d6af7765..bd4488a6 100644 --- a/packages/native_pdf_view/lib/src/native_pdf_view.dart +++ b/packages/native_pdf_view/lib/src/native_pdf_view.dart @@ -15,6 +15,7 @@ class PDFView extends StatefulWidget { const PDFView({ @required this.document, this.controller, + this.onPageChanged, this.loader = const SizedBox(), this.scrollDirection = Axis.horizontal, this.renderer = _render, @@ -27,6 +28,7 @@ class PDFView extends StatefulWidget { @required this.document, @required this.builder, this.controller, + this.onPageChanged, this.loader = const SizedBox(), this.scrollDirection = Axis.horizontal, this.renderer = _render, @@ -52,6 +54,9 @@ class PDFView extends StatefulWidget { /// Page management final PageController controller; + /// Called whenever the page in the center of the viewport changes + final void Function(int page) onPageChanged; + /// Default PdfRenderer options static Future _render(PDFPage page) => page.render( width: page.width * 2, @@ -169,6 +174,7 @@ class _PDFViewState extends State { itemCount: widget.document.pagesCount, onPageChanged: (int index) { _currentIndex = index; + widget.onPageChanged?.call(index+1); }, controller: widget.controller ?? _pageController, scrollDirection: widget.scrollDirection, diff --git a/packages/native_pdf_view/pubspec.yaml b/packages/native_pdf_view/pubspec.yaml index 8d6d2622..9957d8e5 100644 --- a/packages/native_pdf_view/pubspec.yaml +++ b/packages/native_pdf_view/pubspec.yaml @@ -1,6 +1,6 @@ name: native_pdf_view description: Flutter plugin to render PDF files on both Android and iOS devices. Provides a Widget to render the pages using a PageView. -version: 2.0.0 +version: 2.1.0 author: Serge Shkurko homepage: https://github.com/rbcprolabs/packages.flutter/tree/master/packages/native_pdf_view