首先,首先感谢您对这个问题的任何建议!
好的,所以在选择导航按钮后更新UI时遇到问题。当我单击其中一个导航按钮时,可以看到setState被调用,索引和pdfView的路径都被更新为正确的文件。
这是代码:
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:pdf_viewer_plugin/pdf_viewer_plugin.dart';
class PDFPreview extends StatefulWidget{
PDFPreview(this.aContext, {this.document, this.files, Key key}) : super(key:key);
final BuildContext aContext;
final String document;
final List<File> files;
@override
_PDFPreview createState() => _PDFPreview();
}
class _PDFPreview extends State<PDFPreview> {
_PDFWidget pdfView;
int _index = 0;
@override
Widget build(BuildContext context) {
if(widget.document == null) {
pdfView = new _PDFWidget(widget.files[_index].path);
print("Path: ${widget.files[_index].path}");
print("PDF: ${pdfView.path}");
}else{
pdfView = new _PDFWidget(widget.document);
}
return Scaffold(
bottomNavigationBar:
widget.document == null && widget.files.length > 1 ?
BottomAppBar(child:
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(child: IconButton(icon: Icon(Icons.arrow_back_ios), onPressed: () {
if(_index != 0){
setState(() {
_index--;
});
print("Current Index: $_index");
}
},),),
Expanded(child: IconButton(icon: Icon(Icons.edit), onPressed: () {Navigator.pop(context, 0); },),),
Expanded(child: Text("${_index + 1} / ${widget.files.length}", textAlign: TextAlign.center,),),
Expanded(child: IconButton(icon: Icon(Icons.done_outline), onPressed: () { Navigator.pop(context, 1);},),),
Expanded(child: IconButton(icon: Icon(Icons.arrow_forward_ios), onPressed: () {
if(_index < widget.files.length - 1) {
setState(() {
_index++;
});
print("New Current Index: $_index");
}
},),),
],),)
:
BottomAppBar(child:
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(child: IconButton(icon: Icon(Icons.edit), onPressed: () {Navigator.pop(context, 0); },),),
Expanded(child: IconButton(icon: Icon(Icons.done_outline), onPressed: () { Navigator.pop(context, 1);},),),
],),)
,
body: pdfView
);
}
}
class _PDFWidget extends StatelessWidget{
_PDFWidget(this.path);
final String path;
@override
Widget build(BuildContext context) {
return new PdfViewer(
filePath: path,
);
}
}
以下是输出(前进导航)
flutter: Path: {longPath}/sample.pdf
flutter: PDF: {longPath}/sample.pdf
我想知道是否有人有任何可能的解决方案来更新PDF视图。另外,如果有人可以帮我解决这个问题,那么在setState完成构建功能自动启动时会非常感激吗?
答案 0 :(得分:1)
如pskink的评论中所述,检查插件是否正常工作是问题。所有信息都在我这边被更改,UI确实得到了更新,但是插件本身存在更新文件的问题。为插件创建了一个问题,到目前为止,在修复插件之前,可以做的所有事情。