首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个滚动视图的一个控制器

两个滚动视图的一个控制器
EN

Stack Overflow用户
提问于 2019-03-18 15:10:29
回答 2查看 462关注 0票数 1

我有两个滚动视图。一个嵌套,它有一个SliverAppBar,然后一个SingleChildScrollView为我的其余内容(如下面的代码所示)。然后,我有一个控制器,它控制我的浮动动作按钮的不透明度,当我上下滚动时。

但是,只有当我在NestedScroll上有控制器时,控制器才能工作,然后它只能在滚动实际的标题时工作,而不是在滚动内容的其余部分时工作。

如果我将相同的控制器添加到SingleChildScrollView中,将使两个视图分别滚动。有人想办法解决吗?

代码语言:javascript
复制
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
    resizeToAvoidBottomPadding: false,
    body: NestedScrollView(
    controller: _controller,
              headerSliverBuilder: (BuildContext context, bool innerBoxScrolled){
                  return <Widget>[
                    SliverAppBar(
              },
              body:SingleChildScrollView(
            ),

我缩短了代码,只显示这两个视图。

这是我改变FAB的不透明度的方法:

代码语言:javascript
复制
 void _scrollListener() {
if(_controller.position.userScrollDirection == ScrollDirection.reverse){
  setState(() {
    _hideFAB = true;
  });
}

if(_controller.position.userScrollDirection == ScrollDirection.forward){
  setState((){
    _hideFAB = false;
  });
}

}

下面是一个GIF,显示FAB在SliverAppBar:吉菲中滚动时唯一的变化

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-19 15:43:51

我通过使用CustomScrollView而不是NestedScrollView来解决我的问题,然后用SliverList来改变我的SingleChildScrollView

票数 0
EN

Stack Overflow用户

发布于 2019-03-19 05:13:48

使用 ListView 而不是SingleChildScrollView,将其余内容放入ListView

代码语言:javascript
复制
    Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
    resizeToAvoidBottomPadding: false,
    body: NestedScrollView(
    controller: _controller,
              headerSliverBuilder: (BuildContext context, bool innerBoxScrolled){
                  return <Widget>[
                    SliverAppBar(
              },
              body:ListView(
            ),
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55224455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档