【问题标题】:Different color of Overscroll indicator in flutter?Flutter中Overscroll指示器的不同颜色?
【发布时间】:2020-12-01 01:34:24
【问题描述】:

ListView 的顶部和底部 Overscroll 指示符是否可以使用不同的 color

我有ListView 的背景颜色渐变,并希望它在顶部Overscroll 指示器与渐变顶部匹配,底部指示器与渐变底部匹配。

【问题讨论】:

    标签: flutter listview overscroll


    【解决方案1】:

    您可以用GlowingOverscrollIndicator 包装ListView 并设置其color 参数。要更改顶部和底部的颜色,您可以在ListView 的滚动控制器中添加一个侦听器。

     var _color = Colors.blue;
    
      _listener() {
        if (_scrollController.offset >=
                _scrollController.position.maxScrollExtent &&
            !_scrollController.position.outOfRange) {
          // bottom
          setState(() {
            _color = Colors.red;
          });
        }
        if (_scrollController.offset <=
                _scrollController.position.minScrollExtent &&
            !_scrollController.position.outOfRange) {
          // top
          setState(() {
            _color = Colors.blue;
          });
        }
      }
    
      @override
      void initState() {
        super.initState();
        _scrollController.addListener(_listener);
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
            body: GlowingOverscrollIndicator(
            axisDirection: AxisDirection.down,
            color: _color,
            child: ListView.builder(
              controller: _scrollController,
              physics: ClampingScrollPhysics(),
              itemCount: 30,
              itemBuilder: (context, index) {
                return ListTile(
                  title: Text('$index'),
                );
              },
            ),
        ));
      }
    

    结果:

    【讨论】:

    • 可能是个愚蠢的问题,但我应该添加什么作为 _scrollController?
    • 只需将其添加到小部件的状态中: var _scrollController = new ScrollController(); @Gvarph
    猜你喜欢
    • 2011-08-19
    • 2018-11-06
    • 1970-01-01
    • 2014-06-29
    • 2021-06-11
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    相关资源
    最近更新 更多