【发布时间】:2022-06-29 14:37:15
【问题描述】:
我使用带有标签栏的nestedScrollView,但它在滚动pdf时遇到问题,它无法滚动pdf的完整视图
【问题讨论】:
标签: flutter pdf scrollview nestedscrollview
我使用带有标签栏的nestedScrollView,但它在滚动pdf时遇到问题,它无法滚动pdf的完整视图
【问题讨论】:
标签: flutter pdf scrollview nestedscrollview
返回 DefaultTabController( 长度:4, 孩子:NestedScrollView( headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { 返回 [ SliverAppBar( 自动暗示前导:假, 背景颜色:AppColors.white, 固定:真的, 展开高度:360, 弹性空间:背景弹性空间条( 中心标题:假, 背景:新剪辑矩形( 孩子:_presenter!.partDataHeader != null && _presenter!.partDataHeader!.length > 0 ?容器(高度:300,子:列( 孩子们: [ 柱子( crossAxisAlignment:CrossAxisAlignment.start, 孩子们: [ 容器( 身高:300, 孩子:YoutubePlayerBuilder( onEnterFullScreen: (){ _presenter!.showAppbar(false); // SystemChrome.setPreferredOrientations(DeviceOrientation.values); }, onExitFullScreen: () { // 玩家在退出全屏后强制竖屏。这会覆盖行为。 _presenter!.showAppbar(true); }, 播放器:Youtube播放器( 控制器:_controllerVideo!, 纵横比:16 / 9, showVideoProgressIndicator:真, progressIndicatorColor:AppColors.primary, 顶部动作:[ 常量大小框(宽度:8.0), ], 准备就绪:(){ _isPlayerReady = true; }, onEnded:(数据){ _presenter!.ChangeItem( (_presenter!.playListP!.indexOf(data.videoId)+1) % _presenter!.playListP!.length ); _controllerVideo!.load(_presenter!.playListP![ (_presenter!.playListP!.indexOf(data.videoId)+1) % _presenter!.playListP!.length ]); // _presenter.updateData((_presenter.listPart.indexWhere((element) => element.link == data.videoId)) + 1); // _controller.load(_presenter.listPart[(_presenter.listPart.indexWhere((element) => element.videoId == data.videoId)) + 1].videoId); }, ), builder: (context, player) => Scaffold( 正文:容器(), ), ), ), ], ), ], )) : 容器(), )), 底部:TabBar(unselectedLabelColor:AppColors.black,indicatorSize:TabBarIndicatorSize.tab,indicatorColor:AppColors.orange,labelColor:AppColors.orange,标签:[ 标签( 文本:Languages.of(context)!.content, ), 标签( 文本:Languages.of(context)!.exercise, ), 标签(文字: Languages.of(context)!.answer), 标签(文字: Languages.of(context)!.playlist), ], isScrollable: true,), ) ]; }, 正文:标签栏视图( 孩子们: [ 容器( 孩子:_presenter!.partDataContent != null && _presenter!.partDataContent!.length > 0 ? (_presenter!.partDataContent![0].partType==StringsText.TEXT?contentCourse(_presenter!.partDataContent![0].content!):SfPdfViewer.network( AppRepository.instance.token != null ? fileEndpoint(_lesson!.lessonId!, _presenter!.partDataContent![0].partId!, AppRepository.instance.token!) :fileEndpointFree(_lesson!.lessonId!, _presenter!.partDataContent![0].partId!), enableDoubleTapZooming: true, )) : buildNoDataView(Languages.of(context)!.no_data), ), 容器( 孩子:_presenter!.partDataAnserQuestion != null && _presenter!.partDataAnserQuestion!.length > 0 ? HomeworkAnswerPage(_presenter!.partDataAnserQuestion![0], _presenter!.partDataAnserQuestion![0].homeworkList, StringsText.QUESTION, (_homeworkList) => null) : buildNoDataView(Languages.of(context)!.no_data), ), 容器( 孩子:_presenter!.partDataAnserQuestion != null && _presenter!.partDataAnserQuestion!.length > 0 ? HomeworkAnswerPage(_presenter!.partDataAnserQuestion![0], _presenter!.partDataAnserQuestion![0].homeworkList, StringsText.ANSWER, (_homeworkList) => null) : buildNoDataView(Languages.of(context)!.no_data), ), //FAKE nut bam hoan thanh bai hoc max 4 容器( 孩子:_presenter!.partDataPlayList != null && _presenter!.partDataPlayList!.length > 0 ? /PlaylistPage(_presenter!.partDataPlayList,_course!,_indexVideo,(_playlist, _index) => { _isLoadFirst = 假, _isPlayerReady = 假, _playVideoLink=_playlist.link, _indexVideo = _index, _controllerVideo!.load(AppUtils.getYoutubeVideoId(_playlist.link!)), 设置状态((){}), },)/ListView.builder( 收缩包装:是的, itemCount: _presenter!.partDataPlayList![0].playlist!.length, itemBuilder:(上下文,位置){ return _itemVideo(_presenter!.partDataPlayList![0].playlist![position], position); }, ) : buildNoDataView(Languages.of(context)!.no_data), ), ], ), ), );
【讨论】: