在日常的开发中,渲染列表数据,我们都比较喜欢使用 ListTile 挂件,本文,我们来认识下它。 child: Center( child: Container( color: Colors.grey, child: ListTile 如果读者使用过 Ant Design - List 组件,那么可以类比来看待 ListTile。 我们先来看看这个 ListTile 挂件,都有哪些属性和方法: const ListTile({ this.leading, // 通常是 Icon 或者 CircleAvatar 挂件 结合 ListView 使用 ListTile 一般结合 ListView 来使用,替换 for 遍历。ListView 是用于显示列表数据的挂件。
ListTile 通常用于在 Flutter 中填充 ListView 属性如下: title: title 参数可以接受任何小部件,但通常是文本小部件 subtitle: 副标题是标题下面较小的文本 Gesture recognition: ListTile 可以检测用户的点击和长按事件,onTap 为单击,onLongPress 为长按。 primarySwatch: Colors.blue, ), home: Scaffold( appBar: AppBar(title: Text('ListTile override Widget build(BuildContext context) { return ListView( children: <Widget>[ ListTile onTap: () { print('horse'); }, selected: true, ), ListTile
1 ListTile 一个固定高度的行,通常包含一些文本,以及一个行前或行尾图标 2 构造函数 ListTile({ Key key, this.leading, this.title
(title: Text('这是电影tab'),), ListTile(title: Text('这是电影tab'),), ListTile ), ListView( children: <Widget>[ ListTile(title: Text('这是电视剧 tab'),), ListTile(title: Text('这是电视剧tab'),), ListTile(title: Text('这是电视剧 (title: Text('这是电影tab'),), ListTile(title: Text('这是电影tab'),), ListTile tab'),), ListTile(title: Text('这是电视剧tab'),), ListTile(title: Text('这是电视剧
要实现的效果如下: [wecom20210727-134944.png] 然后看如何实现: ListTile 这里需要介绍一下ListTile,Flutter提供的固定高度的,左侧或右侧带有Icon以及文案的控件 ( title: Text('One-line ListTile'), ), ), Card( child: ListTile( leading: FlutterLogo(), title: Text(' ( title: Text('One-line dense ListTile'), dense: true, 参考 Card Dev Doc ListTile Dev Doc Flutter免费视频第三季-布局
ListView( children:<Widget>[ Center(child:ListTile ListView( children:<Widget>[ ListTile ListView( children:<Widget>[ ListTile ListView( children:<Widget>[ ListTile ListView( children:<Widget>[ ListTile
), ) ],), ListTile // 分割线 Divider(), ListTile ListView( children:<Widget>[ ListTile ListView( children:<Widget>[ ListTile ListView( children:<Widget>[ ListTile
但是对于类似名片这种常见的应用,flutter早就为我们想好了,所以他提供了一个叫做ListTile的组件。 具体ListTile的使用,大家可以去参考具体的API,这里就不过多讲述。 这里我们只是借用ListTile来构造我们需要的效果。 不同的ListTile组件,可以用Divider来进行分割,让界面更加美观。 这里我们使用了三个ListTile,其中第一个同时包含了title和subTtile这两个属性。 前面两个ListTile使用Divider进行分割,非常的好用。 总结 以上就是flutter中Card的使用了,大家可以结合ListTile一起构建更加美观和复杂的系统。
垂直列表 ListView( children: <Widget>[ //ListTile是ListView子元素的一个内嵌模式,其类似于OC中的内嵌固定模式的cell ListTile( title: Text("标题1"), subtitle: Text("详细信息1..."), leading ListView的子元素可以是任何类型的Widget,可以是Text、可以是Image、也可以是Container,也可以是ListTile。 ListTile是Flutter内置的用于作为ListView子元素的widget,其类似于OC中的内置cell。 Container可用于设置ListView各个子元素之间的间隔。 然后在私有方法 _getDatas 中循环遍历数据源listData,然后依次生成对应的ListTile。
Text("hello"), ), ListView( children: <Widget>[ ListTile ], ), ListView( children: <Widget>[ ListTile ], ), ListView( children: <Widget>[ ListTile children: <Widget>[ ListView( children: <Widget>[ ListTile ], ), ListView( children: <Widget>[ ListTile
ListView( children:<Widget>[ Center(child:ListTile ListView( children:<Widget>[ ListTile ListView( children:<Widget>[ ListTile ListView( children:<Widget>[ ListTile ListView( children:<Widget>[ ListTile
title: Text(items.first), ), itemBuilder: (context, index) { return ListTile ), body: ListView.builder( itemCount: items.length, prototypeItem: ListTile title: Text(items.first), ), itemBuilder: (context, index) { return ListTile index的不同来返回不同的item: body: ListView.builder( itemCount: items.length, prototypeItem: ListTile ), body: ListView.builder( itemCount: items.length, prototypeItem: ListTile
示例代码: ListView( children: <Widget>[ ListTile(leading: Icon(Icons.map), title: Text('Map')), ListTile(leading: Icon(Icons.mail), title: Text('Mail')), ListTile(leading: Icon(Icons.message), 示例代码: ListView.builder( itemCount: 100, itemExtent: 50.0, itemBuilder: (context, index) => ListTile Divider(color: Colors.green) : Divider(color: Colors.red), itemBuilder: (context, index) => ListTile '视差滚动示例')), SliverList( delegate: SliverChildBuilderDelegate( (context, index) => ListTile
我们还将使用内置的ListTile部件来为我们的项目提供一个可视结构。 new ListView( children: <Widget>[ new ListTile( leading: new Icon(Icons.map), title : new Text('Map'), ), new ListTile( leading: new Icon(Icons.photo_album), title: new Text('Album'), ), new ListTile( leading: new Icon(Icons.phone), title: new Text new Icon(Icons.photo_album), title: new Text('Album'), ), new ListTile
可以看到界面整体上是一个listView,在ListView的第二例是一个ExpansionTile,ExpansionTile的内部是多个ListTile,trailing结合自定义动画将“+”icon (title: Text('One')), ListTile(title: Text('Two')), ListTile(title: Text ('Free')), ListTile(title: Text('Four')) ]), const ListTile(title : Text('第三列')), const ListTile(title: Text('第四列')), const ListTile(title: Text('第五列 ')), const ListTile(title: Text('第六列')), const ListTile(title: Text('第七列')),
ListView.builder来构建item了:body: ListView.builder( itemCount: items.length, prototypeItem: ListTile ), body: ListView.builder( itemCount: items.length, prototypeItem: ListTile index的不同来返回不同的item:body: ListView.builder( itemCount: items.length, prototypeItem: ListTile ), itemBuilder: (context, index) { if(index %2 == 0) { return ListTile ), body: ListView.builder( itemCount: items.length, prototypeItem: ListTile
Text('Item 1'), onTap: () { // 更新应用中的状态 // ... }, ), ListTile /// Header Menu 项 Column( children: [ ListTile( leading: Icon(Icons.home_outlined), Navigator.push(context, MaterialPageRoute(builder: (context) => HomeScreen()),); }, ), ListTile leading: Icon(Icons.workspaces), title: Text('Workflow'), onTap: (){}, ), ListTile title: Text('Updates'), onTap: (){}, ), const Divider(color: Colors.black45,), ListTile
( title: Text('我是一个列表'), ), ListTile( title: Text('我是一个列表'), ), ListTile( title: Text('我是一个列表'), ), ListTile( title: Text('我是一个列表'), , ListTile, ListTile, ListTile, ListTile, ..., ListTile, ListTile) print('tempList的对象为:'+tempList.runtimeType.toString ());//MappedListIterable<dynamic, ListTile> List<Widget> list = tempList.toList(); print('=== =====$list');//[ListTile, ListTile,..., ListTile, ListTile] return tempList.toList(); } } 效果展示如下
child:Column( children: <Widget>[ ListTile :28) ), ), ListTile :28) ), ), ListTile images/flutter/1.png",fit: BoxFit.cover), ), ListTile images/flutter/1.png",fit: BoxFit.cover), ), ListTile
this.title), //在此处,将传递的数据进行引用 ), body: ListView( children: <Widget>[ ListTile ( title: Text('我是表单'), ), ListTile( title: Text('我是表单'), ), ListTile( title: Text('我是表单'), ), ListTile( title: Text('我是表单'), ), ListTile( title: Text('我是表单'), ), ListTile( title: Text('我是表单'), ), ], ), ); } } Flutter