【问题标题】:Flutter: Listview in AlterDialog not scrollableFlutter:AlertDialog中的Listview不可滚动
【发布时间】:2020-05-31 17:35:17
【问题描述】:

我需要一个AlertDialogminHeight50。它包含一个ListView。如果ListView 超出屏幕,它应该变成scrollable。但由于某种原因我无法滚动。谁能向我解释为什么它不起作用:)

 AlertDialog(
  shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)),
  title: ... ,
  content: ConstrainedBox(
    constraints: new BoxConstraints(
      minHeight: 50,
    ),
    child: Column(
      children: <Widget>[
        Row(...),
        Container(
          child:  ListView.builder(
            shrinkWrap: true,
            itemCount: list.length,
            itemBuilder: (context, index) {
              return GestureDetector(
                onTap: () => _onTap(list[index]),
                child: Row(
                  children: <Widget>[
                    Flexible(
                      flex: 1,
                      child: Checkbox(...),
                    ), 
                    Flexible(
                      flex: 3,
                      child: Text(list[index]),)
                  ],
                )
              );
            },
          )
        )
      ],
    ),
   ),
  actions: <Widget>[
    MaterialButton(
      minWidth:100,
      child: Text('Cancel'),
      onPressed: (){
        Navigator.of(context).pop();
      }
    ),
    MaterialButton(
      minWidth:100,
      elevation: 5.0,
      color: Theme.of(context).accentColor,
      child: Text('Save', style: TextStyle(color: Color(0xFFF6F5F5))),
      onPressed: (){

      }
    )
  ],
);

【问题讨论】:

    标签: android flutter flutter-alertdialog


    【解决方案1】:

    将 mainAxisSize: MainAxisSize.min 添加到您的列中。没有它,您的 Column 将处于无限高度并包含所有 Listview 项目。这就是它不滚动的原因。

    【讨论】:

    • 很奇怪。我刚刚测试了一个类似的代码(但当然比你的更简单)并且没有问题。您的代码的其他部分可能会导致问题
    • 是的,问题可能发生在其他地方。我会在周末测试一下。
    猜你喜欢
    • 1970-01-01
    • 2019-05-19
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 2022-01-25
    • 2020-04-17
    相关资源
    最近更新 更多