前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flutter问题:Column里面嵌套两个SingleChildScrollView无法滚动

Flutter问题:Column里面嵌套两个SingleChildScrollView无法滚动

作者头像
毛大姑娘
发布2020-09-10 15:51:13
3.6K0
发布2020-09-10 15:51:13
举报
文章被收录于专栏:向全栈出发向全栈出发

1、问题:

今天测试SingleChildScrollView的时候,发现在Column里面嵌套两个SingleChildScrollView时,第二个SingleChildScrollView无法滚动。

其他ScrollView应该也会出现类似问题。

2、问题图:

3、解决办法:

在无法滚动的SingleChildScrollView控件外面嵌套一个Expanded控件。

Expanded控件会自适应子控件大小,子控件有多大就有多大。

4、完整代码:

代码语言:javascript
复制
import 'package:flutter/material.dart';

class SingleChildScrollViewDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    String str =
        "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ";
    return Scaffold(
        // 显示进度条
        appBar: new AppBar(title: new Text("滚动控件")),
        body: Column(
          children: <Widget>[
            SingleChildScrollView(
              scrollDirection: Axis.horizontal,
              padding: EdgeInsets.all(16.0),
              child: Center(
                child: Row(
                  //动态创建一个List<Widget>
                  children: str
                      .split("")
                      //每一个字母都用一个Text显示,字体为原来的两倍
                      .map((c) => Text(
                            c,
                            textScaleFactor: 2.0,
                          ))
                      .toList(),
                ),
              ),
            ),
            Expanded(
              child: SingleChildScrollView(
                scrollDirection: Axis.vertical,
                padding: EdgeInsets.all(16.0),
                child: Center(
                  child: Column(
                    //动态创建一个List<Widget>
                    children: str
                        .split("")
                        //每一个字母都用一个Text显示,字体为原来的两倍
                        .map((c) => Text(
                              c,
                              textScaleFactor: 2.0,
                            ))
                        .toList(),
                  ),
                ),
              ),
            )
          ],
        ));
  }
}

void main() {
  runApp(new MaterialApp(
    title: "滚动控件案例",
    theme: new ThemeData(primaryColor: Colors.deepOrangeAccent),
    home: new SingleChildScrollViewDemo(),
  ));
}

5、效果图:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年08月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、问题:
  • 2、问题图:
  • 3、解决办法:
  • 4、完整代码:
  • 5、效果图:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档