颤动 - 屏幕不滚动

raf*_*b21 11 dart flutter

我插入了6张卡,但是无法滚动屏幕.

根据下图,页脚中出现红色条纹,屏幕不滚动.

有什么可以滚动屏幕?

main.dart

import 'package:flutter/material.dart';

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: "Myapp",
      home: new HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) => new Scaffold(
    appBar: new AppBar(
      backgroundColor: new Color(0xFF26C6DA),
    ),
    body: new Column(
      children: <Widget>[
        new Card(
          child: new Column(
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
              const ListTile(
                leading: const Icon(Icons.album),
                title: const Text('The Enchanted Nightingale'),
                subtitle: const Text('Music by Julie Gable. Lyrics by Sidney Stein.'),
              ),
            ],
          ),
        ),
        ...
        ...
        ...
      ],
    )    
  );
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Col*_*son 29

列不滚动.尝试使用ListView替换外部列.你可能需要把shrinkWrap:true放在上面.


Seb*_*gel 17

要使列可滚动,只需将其包装在SingleChildScrollView中

  • 至少在我的例子中,SingleChildScrollView 不适用于 Column。我不得不使用ListView。 (9认同)
  • 就我而言,除此之外,脚手架中还有`resizeToAvoidBottomInset`,对其进行了评论。否则滚动将不起作用。 (2认同)

小智 9

这可能会奏效,对我来说很有魅力:

shrinkWrap: true, physics: ClampingScrollPhysics(),


San*_*iya 6

我需要放在SingleChildScrollView里面Column。该SingleChildScrollView也需要Column作为一个孩子,但滚动并没有在这种情况下,为我工作。解决的办法是包裹SingleChildScrollViewExpanded。所以这是它的样子:

      Column(
        children: <Widget>[
          MyFirstWidget(),
          Expanded(
            child: SingleChildScrollView(
              child: Column(
                mainAxisSize: MainAxisSize.min,
                children: <Widget>[
                  // Scrollable content.
                ],
              ),
            ),
          ),
        ],
      ),
Run Code Online (Sandbox Code Playgroud)


小智 5

您必须将其放在ListView.builder上

ListView.builder(
    itemBuilder: (BuildContext context, int index){
    final item = yourItemLists[index];
    new Card(
      child: new Column(
        mainAxisSize: MainAxisSize.min,
        children: <Widget>[
          const ListTile(
            leading: const Icon(Icons.album),
            title: const Text('The Enchanted Nightingale'),
            subtitle: const Text('Music by Julie Gable. Lyrics by Sidney Stein.'),
          ),
        ],
      ),
    );
  },
  itemCount: yourItemLists.length,
);
Run Code Online (Sandbox Code Playgroud)