listview - Flutter ListView 具有不同的小部件和列表项

标签 listview widget flutter scrollable

我不确定我是否遗漏了什么。我正在玩 Flutter,我想用一些文本小部件、按钮和其他小部件(见下图)构建一个(简单) View 。这些小部件后面应该有一个项目列表。整个 View (当然除了应用栏)应该是可滚动的——不仅仅是项目。

这就是为什么我把所有东西都放在一个 ListView 中。但我不能做这样的事情(而 items 是一个带有字符串值的映射):

...    
home: Scaffold(
  appBar: AppBar(
    title: Text('App bar'),
  ),
  body: new ListView(
    children: <Widget>[
      new Text('Some Text'),
      new FlatButton(...),
      new Image.asset(...),
      items.map((item)=>new Padding(
        child: new Text(item.title),
      )).toList()
    ],
  ),
),
...

获得所需 View 的正确方法是什么?

提前致谢!

ListView with different widget types and some list items

最佳答案

您可以使用 ListView.builder因为只有当它们滚动到屏幕上时才会创建项目,因为它更有效。在第一个位置,您可以放置​​不在列表中的小部件,如下所示:

@override
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(title: Text('App bar')),
    body: ListView.builder(
      itemCount: items.length + 1,
      itemBuilder: (context, index) {
        if (index == 0) {
          return Column(
            children: <Widget>[
              Text('Some Text'),
              FlatButton(child: Text('A flat button'), onPressed: () {}),
              Image.asset("An image"),
            ],
          );
        }
        return Text('Item ${items[index].title}');
      },
    ),
  );
}

关于listview - Flutter ListView 具有不同的小部件和列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53017021/

相关文章:

JavaFX listView int[] 类型的拖动列表项(Java Messsge :-1 )

WordPress 创建全宽仪表板小部件

asynchronous - 如何在 initState() 中有异步调用的情况下测试 Flutter 应用程序?

android - 将 EditText View 动态插入 Listview 时,虚拟键盘不会打开

C#/WPF : Get Selected Row from a ListView

java - ListView 适配器的 null 异常

Flutter ListView.builder() 小部件的横轴占据了整个屏幕高度

Android 小部件滚动

flutter - 从流一一获得 future

python-3.x - flutter 和 Flask REST API 之间的数据解析