gpt4 book ai didi

flutter - 在setState上更新UI时出现 flutter 问题

转载 作者:行者123 更新时间:2023-12-03 03:38:36 25 4
gpt4 key购买 nike

首先,预先感谢您对这个问题的任何建议!

好的,因此在选择导航按钮后更新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 View 。另外,如果有人可以帮我解决这个问题,那么在setState完成构建功能自动启动时,将不胜感激吧?

最佳答案

如pskink的评论中所述,检查插件是否正常工作是问题。我身边的所有信息都在更改,UI确实得到了更新,但是插件本身存在更新文件的问题。为插件创建了一个问题,到目前为止,在修复插件之前,可以做的所有事情。

关于flutter - 在setState上更新UI时出现 flutter 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58968253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com