当我单击列表图块时,我想滚动整个页面

时间:2019-09-06 13:04:20

标签: listview flutter scroll

我有一个包装在另一个列表视图中的列表视图。内部列表视图不应是可滚动的,我希望当应用程序外的用户单击列表图块时,整个页面都向下滚动。因此顶部消失,用户可以看到列表视图的其余部分。目前,这是可能的,但仅当用户单击外部屏幕的小边缘时才可以。当有人单击ListTile Directyl时,没有任何反应。

这是外部列表视图

ListView(children: <Widget>[
      new Column(children: <Widget>[
        Container(
            child: Stack(
          alignment: Alignment.bottomCenter,
          overflow: Overflow.visible,

这是内部ListView

Container(
            padding: EdgeInsets.only(left: 20.0, right: 20.0),
            child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  ListView(
                    physics: const AlwaysScrollableScrollPhysics(),
                    controller: _list,
                    scrollDirection: Axis.vertical,
                    shrinkWrap: true,
                    padding: const EdgeInsets.all(8.0),
                    children: <Widget>[
                      Card(
                          child: ListTile(
                        leading: ConstrainedBox(

1 个答案:

答案 0 :(得分:1)

请使用ScrollController.jumpTo()或ScrollController.animateTo()方法来实现。

例如:

class _HomeScreenState extends State<HomeScreen> {
  ScrollController _ScrollController = ScrollController();
  @override
  Widget build(BuildContext context) {
    Timer(Duration(milliseconds: 1000), () => _ScrollController.jumpTo(_ScrollController.position.maxScrollExtent));

    return ListView.builder(
      controller: _controller,
        itemCount: 50,
        itemBuilder: (context, index) => ListTile(title: Text("ListTile"),));
  }
}

您和您要滚动的任何列表上的这个。 您还可以使用以下代码禁用滚动。

物理:const NeverScrollableScrollPhysics()