我试图可视化一个来自StreamBuilder的容器内的pdf文件,总是得到以下错误:RenderConstrainedOverflowBox object was given an infinite size during layout.
我已经尝试将listView Package 在一个扩展的小部件中,但仍然得到一个不同的错误,尝试修复容器高度,但仍然得到错误。
下面是我代码:
class MyFile extends StatefulWidget {
const MyFile({super.key});
@override
State<MyFile> createState() => _MyFileState();
}
class _MyFileState extends State<MyFile> {
User? user = FirebaseAuth.instance.currentUser;
PdfViewerController? pdfViewerController;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
height: 150,
child: SingleChildScrollView(
child: StreamBuilder(
stream: FirebaseFirestore.instance
.collection('cartesP')
.where('userId', isEqualTo: user!.uid)
.limit(1)
.snapshots(),
builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasData) {
return ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: snapshot.data!.docs.length,
itemBuilder: (context, index) {
QueryDocumentSnapshot x = snapshot.data!.docs[index];
return SfPdfViewer.network(
x['fileUrl'],
controller: pdfViewerController,
);
});
}
return Center(
child: CircularProgressIndicator(),
);
}),
),
),
);
}
}
我也尝试过不同的解决方案,从线程堆栈溢出,但没有一个为我工作!我会感谢任何形式的帮助!
1条答案
按热度按时间yhuiod9q1#
你不需要使用
SingleChildScrollView
来 PackageListView
,因为ListView
本身可以滚动。您可以尝试设置ListView子级高度