flutter listview 水平方向滚动到指定位置
时间: 2023-09-26 21:04:29 浏览: 184
要让`ListView`在水平方向滚动到指定位置,可以使用`ScrollController`。可以通过创建一个`ScrollController`对象并将其传递给`ListView`的`controller`属性来实现。然后,使用`animateTo`方法来滚动到指定位置。
以下是一个示例代码:
```dart
class MyListView extends StatefulWidget {
@override
_MyListViewState createState() => _MyListViewState();
}
class _MyListViewState extends State<MyListView> {
final ScrollController _scrollController = ScrollController();
final double _itemExtent = 100.0;
final int _itemCount = 20;
@override
Widget build(BuildContext context) {
return ListView.builder(
scrollDirection: Axis.horizontal,
controller: _scrollController,
itemExtent: _itemExtent,
itemCount: _itemCount,
itemBuilder: (BuildContext context, int index) {
return Container(
width: _itemExtent,
height: _itemExtent,
color: Colors.blue,
child: Center(
child: Text(
'Item $index',
style: TextStyle(
color: Colors.white,
fontSize: 20.0,
),
),
),
);
},
);
}
void scrollToIndex(int index) {
_scrollController.animateTo(
index * _itemExtent,
duration: Duration(milliseconds: 500),
curve: Curves.easeInOut,
);
}
}
```
在上面的示例中,我们使用`ScrollController`来实现`scrollToIndex`方法。在此方法中,我们使用`animateTo`方法将`ListView`滚动到指定的位置。注意,我们需要将偏移量乘以`itemExtent`(每个列表项的大小)来得到正确的位置。在实际使用中,我们可以在需要时调用`scrollToIndex`方法。
阅读全文