Flutter-所选项目移至ListView的顶部

时间:2018-07-21 20:25:42

标签: android ios listview dart flutter

我一直在寻找一种方法来永久将选定的项目快速移动到ListView的顶部。

这可以通过按下iconbutton元素旁边的ListView,并使该元素移到refresh的顶部来实现。

如果可能的话,我希望图标按钮在启用时变为enabled(即发光/点亮),而在禁用时变为disabled(变灰,但仍可以按下)。

我无法满足我在此问题中的所有代码,因此,所有相关内容以及_getListItemUi都可以在以下网址获得:https://github.com/Jak3-02/myproject2

这是我当前的ListView的样子:

Widget _cryptoWidget() {
    return new Container(
        child: new Column(
          children: <Widget>[
            new Flexible(
              child: new ListView.builder(
                itemCount: _currencies.length,
                itemBuilder: (BuildContext context, int index) {
                  final int i = index ~/ 2;
                  final Crypto currency = _currencies[i];
                  final MaterialColor color = _colors[i % _colors.length];
                  if (index.isOdd) {
                    return new Divider();
                  }
                  return _getListItemUi(currency, color);
                },
              ),
            ),
          ],
        )
      );
  }

谢谢,所有想法都值得赞赏。 :)

1 个答案:

答案 0 :(得分:2)

这听起来很像一个课堂项目,所以我将为您指出正确的方向,以便自己解决这个问题。

在代码中注意项目生成器。它读取_currencies列表并构建相应的窗口小部件。 如果您{_3}}使用_currencies并再次运行此代码会发生什么?

当_cryptoWidget的_currencies列表更改时,您将如何重绘_cryptoWidget? 您将使用有状态小部件还是无状态小部件?

当数据更改时,其中哪一个会重绘?

您想要一个可点击的图标,该图标在启用和禁用时看起来会有所不同。 您看过rearranged the items吗?

有了这些注释,您应该可以轻松解决此问题。