如何在Flutter中实现字母滚动

14

有没有插件或方法可以在Flutter中实现这种滚动?

具体来说,在右侧的字母列上,例如突出显示当前字母,或者如果点击了某个字母,则滚动视图会直接转到该字母标题。

对于按字母顺序排序,我们可以使用List.sort(),对于粘性标头,我们也有一些很好的插件。

联系人列表图片


3
您可以使用一个按顺序排列的 List<YourModel> 来创建一个 ListView,然后在屏幕右侧使用 FlatButtons。当按钮被按下时,它们会滚动到该字母的第一个索引位置。 - Elcan
1
你可能需要以最初在提供此行为的Android库中实现的方式来实现它。 - dazza5000
@FlorentUguet 这个现在可以用,但我还在寻找一种滚动字母的方式,我想稍后再回来看看。谢谢。 - Osama Gamal
2个回答

1

请查看这个粘性头部插件https://pub.dartlang.org/packages/sticky_headers

class Example extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new ListView.builder(itemBuilder: (context, index) {
      return new StickyHeader(
        header: new Container(
          height: 50.0,
          color: Colors.blueGrey[700],
          padding: new EdgeInsets.symmetric(horizontal: 16.0),
          alignment: Alignment.centerLeft,
          child: new Text('Header #$index',
            style: const TextStyle(color: Colors.white),
          ),
        ),
        content: new Container(
          child: new Image.network(imageForIndex(index), fit: BoxFit.cover,
            width: double.infinity, height: 200.0),
        ),
      );
    });
  }
}

这个库确实可以为列表项创建粘性标题。但是,我们能否使用这个库根据字母对列表项进行分组,就像提问者所提到的那样? - ravi
排序将使这个包变得完美。 - Keith DC

0
你可以使用类似这样的代码:

AZlistview


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接