代码之家  ›  专栏  ›  技术社区  ›  Melchi Zedek

Flutter PDFView未在底部工作表内滚动

  •  0
  • Melchi Zedek  · 技术社区  · 2 年前
      _bottomSheet(String remotePDFpath) {
        return showModalBottomSheet(
            context: context,
            isScrollControlled: true,
            isDismissible: true,
            builder: (context) {
              return DraggableScrollableSheet(
                minChildSize: 1,
                initialChildSize: 1,
                builder: (BuildContext context, ScrollController scrollController) {
    
                  return Stack(
                    children: <Widget>[
                      remotePDFpath.isNotEmpty
                          ? PDFView(
                            filePath: remotePDFpath,
                            enableSwipe: true,
    
                            swipeHorizontal: false,
                            autoSpacing: false,
                            pageFling: true,
                            pageSnap: true,
                            defaultPage: currentPage!,
                            fitPolicy: FitPolicy.BOTH,
                            preventLinkNavigation: false,
    
                            // if set to true the link is handled in flutter
                            onRender: (_pages) {
                              setState(() {
                                isReady = true;
                              });
                            },
                            onError: (error) {
                              setState(() {
                                errorMessage = error.toString();
                              });
                              print(error.toString());
                            },
                            onPageError: (page, error) {
                              setState(() {
                                errorMessage = '$page: ${error.toString()}';
                              });
                              print('$page: ${error.toString()}');
                            },
                            onPageChanged: (int? page, int? total) {
                              print('page change: $page/$total');
                              setState(() {
                                currentPage = page;
                              });
                            },
                          )
                          : errorMessage.isEmpty
                              ? !isReady
                                  ? const Center(
                                      child: CircularProgressIndicator(
                                        color: Colors.black54,
                                      ),
                                    )
                                  : Container()
                              : Center(
                                  child: Text(errorMessage),
                                ),
                    ],
                  );
                },
              );
            });
      }
    

    尝试添加Single child scrollview和ListView。两者都在创建“在布局过程中对象被赋予了无限大”的问题

    0 回复  |  直到 2 年前