如何在ListView中添加额外的底部间距?

时间:2019-07-12 07:19:58

标签: flutter dart flutter-layout

FloatingActionButtonListView结合使用时,它会隐藏ListView条目的部分UI,如屏幕截图所示。
有没有一种方法可以自动在ListView的底部添加额外的间距,以使+按钮不会隐藏任何内容?

enter image description here

2 个答案:

答案 0 :(得分:1)

假设您正在使用ListView,那么有一个非常简单的解决方案。
您可能想要在ListView本身周围添加填充,因为这会使您的UI的某些区域未被使用。

ListView在此用例上有一个padding parameter。您实际上可以在{strong> scrollable区域的一部分ListView的底部添加一些填充。这意味着,只有一直滚动到底部,您才会开始看到此填充。这样一来,您就可以将最后几个项目拖到FloatingActionButton上方。
要为填充找到合适的值,可以使用kFloatingActionButtonMargin_kExtendedSizeConstraints,它们是不可访问的,因此,我将像这样使用48

这意味着您将希望在ListView中添加以下内容:

ListView(
  padding: const EdgeInsets.only(bottom: kFloatingActionButtonMargin + 48),
  ..
)

这是一个有效的示例:

import 'package:flutter/material.dart';

main() {
  runApp(MaterialApp(
      home: Scaffold(
    body: ListView.builder(
        padding: const EdgeInsets.only(bottom: kFloatingActionButtonMargin + 48),
        itemCount: 23,
        itemBuilder: (context, index) => ListTile(
              trailing: Text('$index'),
            )),
    floatingActionButton: FloatingActionButton(
      onPressed: () {},
    ),
  )));
}

screen capture

答案 1 :(得分:0)

可扩展( ListView.builder( ... 填充:EdgeInsets.only(底部:200), ... ) )