怎么计算每个item的高度,想滚动到具体某一个某一条,有什么思路

来源:10-2 基于ListView实现水平和垂直方式滚动的列表【边学边做】

老白一个

2020-04-01

这方面资料很少,处理这样的问题,有什么思路吗,目前看到的一种方式是在listview 中 写死子item的高度,还有写的解决方法吗

写回答

1回答

CrazyCodeBoy

2020-04-05

借助:Scrollable.ensureVisible(context) + SingleChilScrollView + GlobalKey来实现:

class ScrollView extends StatelessWidget {
  final dataKey = new GlobalKey();

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      primary: true,
      appBar: new AppBar(
        title: const Text('Home'),
      ),
      body: new SingleChildScrollView(
        child: new Column(
          children: <Widget>[
            new SizedBox(height: 160.0, width: double.infinity, child: new Card()),
            new SizedBox(height: 160.0, width: double.infinity, child: new Card()),
            new SizedBox(height: 160.0, width: double.infinity, child: new Card()),
            // destination
            new Card(
              key: dataKey,
              child: new Text("data\n\n\n\n\n\ndata"),
            )
          ],
        ),
      ),
      bottomNavigationBar: new RaisedButton(
        onPressed: () => Scrollable.ensureVisible(dataKey.currentContext),
        child: new Text("Scroll to data"),
      ),
    );
  }
}


0
0

Flutter从入门到进阶 实战携程网App 一网打尽核心技术

解锁Flutter开发新姿势,,系统掌握Flutter开发核心技术。

4788 学习 · 3270 问题

查看课程