flutter 如何加载不同的pdf页面初始加载

kgqe7b3p  于 2023-06-24  发布在  Flutter
关注(0)|答案(1)|浏览(148)

我正在为我的flutter项目使用syncfusion_flutter_pdfviewer包,我试图将一个特定的页码从我的主页面传递到我的Details页面。之后,它会加载PDF页码立即时,详细页打开,但我卡住了,所以任何帮助或建议将是非常感谢的。
我已经试过了,但是我在“jumpToPage”上得到一个错误
此表达式的类型为“void”,因此无法使用其值。尝试检查您是否使用了正确的API;可能有一个函数或调用返回了你没有预料到的void。还要检查类型参数和变量,它们也可能是空的。

body: SfPdfViewer.asset(
        'data/hymn_pdf/full-songs.pdf',
        controller: _pdfViewerController.jumpToPage(widget.number),
      ),

完整详细信息页代码。

class DisplayScreen extends StatefulWidget {
  final int number;
  const DisplayScreen(this.number);
  @override
  _DisplayScreen createState() => _DisplayScreen();
}

class _DisplayScreen extends State<DisplayScreen> {
  final GlobalKey<SfPdfViewerState> _pdfViewerKey = GlobalKey();

  late PdfViewerController _pdfViewerController;

  @override
  void initState() {
    _pdfViewerController = PdfViewerController();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Syncfusion Flutter PdfViewer'),
        actions: <Widget>[
          IconButton(
            icon: Icon(
              Icons.arrow_drop_down_circle,
              color: Colors.white,
            ),
            onPressed: () {
              _pdfViewerController.jumpToPage(widget.number); // I got this from synfusion doc and I'm trying to copy it in my controller but I'm getting an error.
            },
          ),
        ],
      ),
      body: SfPdfViewer.asset(
        'data/hymn_pdf/full-songs.pdf',
        controller: _pdfViewerController.jumpToPage(widget.number), //I'm getting an error here
      ),
    );
  }
}
drnojrws

drnojrws1#

在分配控制器时不能只调用jumpToPage。错误示例:

body: SfPdfViewer.asset(
    'data/hymn_pdf/full-songs.pdf',
    controller: _pdfViewerController.jumpToPage(widget.number), // <-- nope
  ),

您需要在加载pdf后调用该方法。例如,在onDocumentLoaded回调函数中调用它。
示例代码:

SfPdfViewer.asset(
    'data/hymn_pdf/full-songs.pdf',
    controller: _pdfViewerController,
    onDocumentLoaded: (details) {   // as soon as the doc is loaded
      _pdfController.jumpToPage(3); // jump to page 3
    },
  )

相关问题