Flutter:SingleChildScrollView不适用于列和网格视图为什么?

问题描述

我无法滚动查看我的下部网格视图。这是为什么?为了使这项工作有效,我应该更改什么?请帮忙!!! 预先谢谢你。

Scaffold(
            body: SingleChildScrollView(
              child: Container(
                child: Column(
                  children: <Widget>[
                    Text('GridView 1'),GridView.count(
                      crossAxisCount: 3,shrinkWrap: true,children: List.generate(
                        9,(index) {
                          return TouchableImageCard(
                            imagePath: 'assets/images/view_${index + 1}.jpg',);
                        },),Text('GridView 2'),GridView.builder(
                      itemCount: list_item.length,gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                          crossAxisCount: 3),itemBuilder: (BuildContext context,int index) {
                        return TouchableImageCard(
                          imagePath: 'assets/images/view_${index + 1}.jpg',// width: 150,// height: 150,);
                      },],);

谢谢你的帮助。

解决方法

尝试一下:

 Center(
    child: SingleChildScrollView(
      padding: const EdgeInsets.all(8.0),child: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,crossAxisAlignment: CrossAxisAlignment.center,children: <Widget>[]
,

它确实可以工作,但不是您需要的方式。
问题在于GridView本身也是可滚动的小部件。因此,当您尝试滚动页面时,它实际上尝试滚动那些GridView,而不是SingleChildScrollView。
要禁用GridView滚动功能-您需要再添加一个参数。

GridView.count(
                physics: NeverScrollableScrollPhysics(),...
              ),

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...